LXC kontejnery na Turris verze 1.x

Momentálně v Debianu mam problém.

root@debian1:~/weechat-1.8# apt-get update
Hit:1 Index of /debian sid InRelease
Hit:2 https://cdn-aws.deb.debian.org/debian-ports sid InRelease
Reading package lists… Done
N: Skipping acquire of configured file ‘main/binary-powerpcspe/Packages’ as repository ‘Index of /debian sid InRelease’ doesn’t support architecture 'powerpcspe

To samé i v jiném kontejneru, což je mi záhodou, ale zhruba před 14 dny to ještě fungovalo. :confused:

root@debian:~/weechat-1.8# apt-get build-dep weechat
Reading package lists… Done
E: You must put some ‘source’ URIs in your sources.list

Nemůže to náhodou souviset s tím, že Debian i Ubuntu dávají ruce pryč od powerpc?

BTW: Konečně vím, jak přidat Debian LXC kontejner přímo do LuCI.

///EDIT:
https://cdn-aws.deb.debian.org/debian/dists/sid/InRelease v tomto souboru už se bohužel nenachází powerpcspe a v tom bude zakopaný pes :slight_smile:
Teď ještě přijít čím nahradit tento zdroj balíčků v /etc/apt/sources.list

Zřejmě nahradím zdroj z

deb Index of /debian sid main

na:

deb Index of /debian-ports unstable main
deb Index of /debian-ports unreleased main
deb Index of /debian-ports experimental main

z PowerPCSPEPort - Debian Wiki

2 Likes

Dobrý den, jel jsem podle návodu na komunitní dokumentace a narazil jsem na tento problém:

lxc-start 1499162147.694 ERROR lxc_conf - conf.c:instantiate_veth:2767 - failed to create veth pair (vethEGIE9Q and vethB3728V): Operation not supported
lxc-start 1499162147.696 ERROR lxc_conf - conf.c:lxc_create_network:3079 - failed to create netdev
lxc-start 1499162147.696 ERROR lxc_start - start.c:lxc_spawn:935 - failed to create the network
lxc-start 1499162147.696 ERROR lxc_start - start.c:__lxc_start:1192 - failed to spawn ‘debian1’
lxc-start 1499162152.702 ERROR lxc_start_ui - lxc_start.c:main:344 - The container failed to start.
lxc-start 1499162152.702 ERROR lxc_start_ui - lxc_start.c:main:346 - To get more details, run the container in foreground mode.
lxc-start 1499162152.702 ERROR lxc_start_ui - lxc_start.c:main:348 - Additional information can be obtained by setting the --logfile and --logpriority options.

Vyřešeno: stačilo nainstalovat kmod-veth! (zamyslel jsem se :smiley: )
@rene.kliment asi by to chtělo ten návod doplnit o informace z předešlého postu od @Pepe, případně i ten můj postřeh. Děkuji za návod.

Já myslím, že v tom původním Giťáckém návodu od @rene.kliment byla nutnost instalace balíčku “kmod-veth” uvedena.

Nejlepší je instalovat pro LXC podporu na Turrisu 1.x všechny balíčky, které jsou uvedeny v oficiálním LXC listu, případně přidat do souboru " /etc/config/updater " další řádek do sekce " config pkglists pkglists " ve znění " list lists ‘lxc’ " a o aktualizaci všech balíčků pro LXC se Vám bude řádně starat Updater-ng

Tak to se přiznám, že je moje chyba.

Před verzí TurrisOS 3.7 dokumentace byla psaná, tak jak píše @Nones

https://www.turris.cz/doc/cs/public/lxc?do=diff&rev2[0]=1497984795&rev2[1]=1498496575&difftype=inline

Více v oficiální odpovědi od člena Turris teamu (konkrétně vyvojáře updater-ng)

podle gitu to bylo opět přidané, ale jestli se to dostane (nebo opět dostalo) do deploy verze těžko říct.

Bohužel po aktualizaci jsem zapomněl přidat

kmod-veth
jak je psané zde: GitHub - renekliment/turris-lxc-howto: How to run LXC containers on the Turris router (PowerPCSPE)

Dokumentace je upravena. Jestli myslíš post 21, tak teď nevím, jestli je aktuální. Na LXC kontejnery jsou dlouho nešáhl. Není potřeba. :slight_smile: Mrknu na to a případně to přidám do dokumentace

OT:/Aktuálně mam rozdělané (sice delší dobu) sdílení tiskárny a tunery

Dobrý den,

opravdu by to chtělo doplnit do dokumentace, protože tuto chybu jsem řešil celý den. Až potom mne napadlo podívat se zde. Bohužel jsem narazil na jinou chybu:

  lxc-start 1499846397.492 ERROR    lxc_start - start.c:start:1277 - Exec format error - failed to exec /sbin/init
  lxc-start 1499846397.493 ERROR    lxc_sync - sync.c:__sync_wait:51 - invalid sequence number 1. expected 4

Zdravím,
ale tu chybu, co citujete, tak jsem jí opravil ihned po nahlášení.
Jak je vidět zde: LXC kontejnery [Turris wiki] případně na konci jedině tohoto jediného článku jsou zdroje, tak i to se dalo využít a případně v mých člancích (bohužel tohle není můj článek) je vždy na konci uveden kontakt.
Opravdu nemohu za to, že se Turris team rozhodl najednou nepodporovat LXC kontejnery přes updater pro Turris 1.x v TurrisOS 3.7.

Nevadí. Na tu chybu se podívám a zjistím, co by mohlo být špatně, ale návod jsem ještě 8.7 zkontroloval a vyzkoušel a vše bylo v pořádku.

//EDIT:
Přiznám se, že ta chyba mi moc nepomohla a tak mohu střílet pouze naslepo.
Soubor config, který by se měl nacházet v

/mnt/disk/lxc-containers/debian1

máte? Případně podle potřeby si ho můžes upravit.

Mělo by v něm být toto:

lxc.utsname = debian1
lxc.rootfs = /mnt/disk/lxc-containers/debian1/rootfs
lxc.mount.entry=proc /proc proc nodev,noexec,nosuid 0 0
lxc.mount.entry=tmpfs /dev/shm tmpfs defaults 0 0
lxc.pts=1024

A ve složce soubor /mnt/disk/lxc-containers/debian1/rootfs/resolv.conf máš upraven podle návodu?

Myslím si, žes nedodržel pouze nějaký triviální krok v návodu.

Předem ještě chci poděkovat za návod a za pomoc.

resolv.conf:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.1

config se v tomto umístění nachází:

# Template used to create this container: /usr/share/lxc/templates/lxc-download
# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)
# Debian workaround
# Template to generate fixed MAC address

# Distribution configuration
lxc.arch = armv7l

# Container specific configuration
lxc.utsname = debian
lxc.rootfs = /mnt/turris/lxc-containers/debian/rootfs
lxc.mount.entry=proc /proc proc nodev,noexec,nosuid 0 0
lxc.mount.entry=tmpfs /dev/shm tmpfs  defaults 0 0
lxc.pts=1024

# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br-lan
lxc.network.hwaddr = c2:b1:09:b6:b1:81
lxc.network.ipv4 = 192.168.1.10/24
lxc.network.ipv4.gateway = 192.168.1.1

Zásluhy za návod patří @rene.kliment :slight_smile:

Tak soubory vypadají, že jsou v pořádku. Tak já zkusím chybu reprodukovat, ať víme, kde je chyba, ale moc velké naděje tomu nedávám.

//EDIT:

root@turris:~# opkg install debootstrap
Package debootstrap (1.0.81-1) installed in root is up to date.

to máme stejné?

//
Koukám nějaká zrada tady při stahování debianu

W: Couldn’t download package systemd (ver 232-25 arch powerpcspe)
I: Retrieving sysvinit-utils 2.88dsf-59.9
I: Validating sysvinit-utils 2.88dsf-59.9
I: Retrieving tar 1.29b-1.1
I: Validating tar 1.29b-1.1
I: Retrieving udev 232-25
W: Couldn’t download package udev (ver 232-25 arch powerpcspe)
I: Retrieving util-linux 2.29.2-1
W: Couldn’t download package util-linux (ver 2.29.2-1 arch powerpcspe)
I: Retrieving vim-tiny 2:8.0.0197-4
W: Couldn’t download package vim-tiny (ver 2:8.0.0197-4 arch powerpcspe)
I: Retrieving wget 1.19.1-4
W: Couldn’t download package wget (ver 1.19.1-4 arch powerpcspe)
I: Retrieving whiptail 0.52.20-1+b1
I: Validating whiptail 0.52.20-1+b1
I: Retrieving xxd 2:8.0.0197-4
W: Couldn’t download package xxd (ver 2:8.0.0197-4 arch powerpcspe)
I: Retrieving zlib1g 1:1.2.8.dfsg-5
W: Couldn’t download package zlib1g (ver 1:1.2.8.dfsg-5 arch powerpcspe)
E: Couldn’t download packages: systemd udev util-linux vim-tiny wget xxd zlib1g

A dál mě to zatím nepustilo. :confused: Podívám se, co je potřeba

Ano to mám stejné.

S tím balíkem jsem měl včera také problém. Nakonec jsem to stáhnul přes: lxc-create -t download -n debian Vybral jsem si distribuci jessy.

a spuštím to přes příkaz: lxc-start -n debian

Zkoušel jsem to i přes luci, ale tam mě to nezaznamenávalo chybové hlášení.

Stejně nechápu, jak se došlo k tomu, že na verzi TurrisOS 3.7 byl odstraněný list LXC.

Nebyl … tady je důkaz.

Jo, že starý updater na tenhle userlist prděl, to souhlasím, ale od verze TurrisOS 3.7 už by měl být na všech Turris routerech updater-ng, a ten zaplaťpánbu bere userlist LXC i všechny ostatní vážně.

Updater-ng mam delší dobu. I kdyby tam byla/nebyla ta zaškrtávací volba, tak by mi to nemělo ty balíčky přeci odinstalovat. :slight_smile: Asi máš pravdu, ale i když by si tam dal znova tu volbu do /etc/config/updater, tak by to měl po uložení ve Forisu v updater tabu zase přepsat, pokud se nepletu?

A právě proto tam se to pak přidalo, aby to nedělalo neplechu s tím, když se to přidá ručně?
Commit na gitu:
https://gitlab.labs.nic.cz/turris/turris-os-packages/commit/82479c99581d922a3cd4110b4001929d46334046

Upřímně, když byla možnost zmigrovat na nový updater, tak jsem to provedl a ani nevím, jestli tam byl LXC list ve Foris tabu a potom jsem tam přidal rovnou do configu ten řádek a menší aktualizace byly v pohodě. Teď jsem vyzkoušel, jak jim fungují ty jazyky a najednou vidím, jak se to odinstalovalo, ale opět jsme u toho problému, že když na něco bys klikl ve Forisu v Updateru, tak ti to zase smaže. Neefektivní. :confused:

Já tomu, co píše @cynerd rozumím, @Pepe, ale myslím, že to spíš bylo myšleno tak, že ve Forisu (v záložce Updater) není pro Turrisy 1.x zaškrtávací volba pro LXC kontejnery, ale Omnie jí tam mají.

Ale na ruční konfiguraci souboru /etc/config/updater nový updater-ng slyšel i na Turrisu 1.x vždycky.

Moje chyba! Předešlý příspěvek jsem upravil. :slight_smile:

Tak či onak je to v tuto chvíli menší problém než teď aktuálně stáhnutí Debianu. :wink:
Musím se podívat, co tam soudruzi udělali za chybu a poradit a upravit návod

Přátelé, poraďte mi.
Mám T1.0, dnes jsem udělal rollback, aktualizoval na 3.8.1, nainstaloval LXC a spustil.
Bohužel z kontejneru nemám přístup na net. Má statickou adresu, ale ping nechodí.

root@rc:~# ifconfig
br-lan Link encap:Ethernet HWaddr D8:58:D7:00:01:35
inet addr:10.0.0.113 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fdbf:ca40:1696::1/60 Scope:Global
inet6 addr: fe80::da58:d7ff:fe00:135/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3489 (3.4 KiB) TX bytes:2190 (2.1 KiB)

eth0 Link encap:Ethernet HWaddr D8:58:D7:00:01:35
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:55 errors:0 dropped:7 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5867 (5.7 KiB) TX bytes:3212 (3.1 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:3957 (3.8 KiB) TX bytes:3957 (3.8 KiB)

root@turris:~# ping 8.8.4.4
PING 8.8.4.4 (8.8.4.4): 56 data bytes
ping: sendto: Network is unreachable

Kde mám chybu?

A máte správně nastavený config v /srv/lxc/debian ?

Používám místo standartní IP 192.168.1.1 pro rozhraní lan 192.168.0.1
jestě pak v kontejneru potřeba upravit /etc/resolv ale to asi máte

Po aktualizaci na 3.8.1 na Turris 1.0 ping funguje. Můžu sem dát ještě další konfig soubory když napíšete jaký.

lxc.utsname = debian
lxc.rootfs = /data/debian/rootfs
lxc.mount.entry=proc /proc proc nodev,noexec,nosuid 0 0
lxc.mount.entry=tmpfs /dev/shm tmpfs defaults 0 0
lxc.pts=1024

networking

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br-lan
lxc.network.hwaddr = 00:11:22:33:44:55
lxc.network.ipv4 = 192.168.0.10/24
lxc.network.ipv4.gateway = 192.168.0.1

Omlouvám se, asi jsem měl napsat že se nejedná o Debian, ten mi jede podle návodu, ale o TurrisOS.

Nejede mi to, přitom dříve mi to běželo, teď jsem to nastavil z terminálu a druhý pokus přes LuCI a nejede mi ani jedno.
Divný. Adresu mám statickou.

Podívám se Ti večer doma, jak to mám nastavený.

Matně si vzpomínám, že s Turrisím kontejnerem se muselo nějak cvičit (na rozdíl od Debianího), aby začal korektně síťově fungovat :slight_smile:

Dík, já cvičil půl večera a nic. Nechápu proč mi to nejede.

Ono se to tváří že to nějaké data má, ale nemá:

root@turris:~# lxc-info -n rc
Name:           rc
State:          RUNNING
PID:            14848
IP:             10.0.0.113
IP:             2a00:1028:8380:4296:da58:d7ff:fe00:137
IP:             fdab:fcc0:9468:0:da58:d7ff:fe00:137
IP:             fdab:fcc0:9468::78d
CPU use:        56.34 seconds
Memory use:     14.09 MiB
Link:           vethNJYNRE
 TX bytes:      22.17 KiB
 RX bytes:      164.57 KiB
 Total bytes:   186.74 KiB

Když jsem si hrál s LXC na Omnii tak mi taky Debian fungoval ( a stále funguje ) v pohodě a Turris OS jsem taky nerozchodil na síti, ale nelaboroval jsem s tím, protože jsem to nepotřeboval …

Posílám mojí konfiguraci LXC kontejneru s TurrisOS (stáhnul jsem před chvilkou aktuálně dostupnou verzi TurrisOS 3.7.5 přes LXC nabídku v LUCi)

Soubor “config”

lxc.arch = armv7l
lxc.tty = 4
lxc.pts = 1024
lxc.rootfs = /mnt/nas1/lxc/turris1/rootfs
lxc.utsname = turris1
lxc.network.type = veth
lxc.network.link = br-lan
lxc.network.flags = up
lxc.network.hwaddr = 12:dd:5d:62:63:79
lxc.network.ipv4 = 172.23.100.99
lxc.network.ipv4.gateway = 172.23.100.1

Soubor /etc/config/network (který natvrdo nakopíruju do rootfs LXC kontejneru)

config interface ‘loopback’
option ifname ‘lo’
option proto ‘static’
option ipaddr ‘127.0.0.1’
option netmask ‘255.0.0.0’

config interface ‘lan’
option ifname ‘eth0’
option proto ‘static’
option ipaddr ‘172.23.100.99’
option netmask ‘255.255.255.0’
option gateway ‘172.23.100.1’

Ty IP adresy musí korespondovat