|
|
P89626/ArchLinuxARMHier alles Rund um ArchLinuxARM auf dem MEDION LIFE P89626 (MD 86407) NAS. << zurück zur Hauptseite 'P89626'
[Bearbeiten] HintergrundDie Hardware-Basis, die ARM PLX-NAS7820 CPU (siehe P89626#Technische_Daten), ist die selbe wie im Pogoplug Pro/Video/v3. Von daher liegt es nahe, ArchLinuxARM auf dem NAS zu betreiben. Nach dem Forumspost "HOLD ON - WE'RE WORKING ON IT" ist die Portierung allerdings nicht vollständig abgeschlossen. Man kann den aktuellen Stand von "ARMv6 PLX OxNAS platforms" herunterladen: http://archlinuxarm.org/os/ArchLinuxARM-oxnas-latest.tar.gz und auf einen USB-Stick packen. Damit kann, ebenfalls per chroot wechseln. [Bearbeiten] chroot auf PlatteUm ein ArchLinuxARM auf Platte zu legen um es z.T. per chroot zu nutzten, kann man folgendes tun: ~ # cd /i-data/6764ac2f/ /i-data/6764ac2f # mkdir ArchLinuxARM /i-data/6764ac2f # cd ArchLinuxARM/ /i-data/6764ac2f/ArchLinuxARM # wget http://archlinuxarm.org/os/ArchLinuxARM-oxnas-latest.tar.gz /i-data/6764ac2f/ArchLinuxARM # tar xvf ArchLinuxARM-oxnas-latest.tar.gz /i-data/6764ac2f/ArchLinuxARM # rm ArchLinuxARM-oxnas-latest.tar.gz Nun hat man das root Dateisystem von ArchLinuxARM auf platte. [Bearbeiten] DatenübernameMan könnte ein paar Daten vom Original System übernehmen, z.B.:
usw. [Bearbeiten] manuelles chrootIm Prinzip kann man nun ein chroot wie folgt machen: ~ # cp /etc/resolv.conf /i-data/6764ac2f/ArchLinuxARM/etc/resolv.conf ~ # chroot /i-data/6764ac2f/ArchLinuxARM /bin/bash [root@NAS-SERVER /]# pacman -Syu Mit exit kommt man dann wieder zurück. btw. Wichtigsten Befehle von pacman: http://archlinuxarm.org/support/guides/applications/package-management [Bearbeiten] chroot per scriptDamit ein chroot einfacher Funktioniert, gibt es das Script do_chroot.sh welches man einfach ins Root Verzeichnis packt: ~ # cd /i-data/6764ac2f/ArchLinuxARM /i-data/6764ac2f/ArchLinuxARM # curl --insecure https://raw.github.com/jedie/NAS7820-Tools/master/do_chroot.sh > do_chroot.sh /i-data/6764ac2f/ArchLinuxARM # chmod +x do_chroot.sh /i-data/6764ac2f/ArchLinuxARM # ./do_chroot.sh [root@NAS-SERVER /]# pacman -Syu TODO: Das einbinden von /dev klappt nicht. Es kommt der Fehler: Invalid argument, siehe: http://www.mikrocontroller.net/topic/240238?page=2#2450527 Somit kann man in der chroot Umgebung nicht alles tun. [Bearbeiten] ArchLinuxARM installierenMan kann ArchLinuxARM auf der Box installieren, muß dazu allerdings die Platte platt machen! Zwar kann man auch vom USB Stick booten, aber: ACHTUNG: Der Zugriff auf /dev/sda2 beschädigt das RAID, siehe: http://www.mikrocontroller.net/topic/240238?goto=2461598#2461598 !!! Somit startet das normale System nicht mehr durch. Über P89626/usb_key_func kann man das System aber starten und alle Daten sind noch vorhanden... Wahrscheinlich ist das RAID einfach nur als "defekt" markiert. Das Booten eines ArchLinuxARM-oxnas Kernels funktioniert mit dem Kernel von: http://www.mikrocontroller.net/topic/240238?goto=2461228#2461228 (md5: 2913a873b189461ca3803a0d2114e0de) Boot Ausgaben siehe: http://www.mikrocontroller.net/topic/240238?page=4#2461530 Dazu kopiert/entpackt man das rootfs von ArchLinuxARM nach sda2 (ist im Normalen System: /i-data/6764ac2f/) und gibt diese bootargs an: console=ttyS0,115200 root=/dev/sda2 mem=128M Ebenfalls möglich ist die Nutzung des uImage.nopci Kernels aus dem ArchLinuxARM-oxnas-latest.tar.gz Archiv. [Bearbeiten] Schritt für Schritt InstallationACHTUNG: EXPERIMENTELL und nicht Ausreichend getestet! Also nur für erfahrene Hacker zu empfehlen! Zählst du dazu, dann bitte mithelfen die Anleitung hier zu verbessern! Für eine Installation auf Platte, sollte man auf jeden Fall einen P89626/UART Zugang haben! Die Festplatte muß neu Formatiert werden, somit sind alle Daten vorher zu sichern! WICHTIG: Die Platte hat das sog. Advanced Format mit 4KBytes Sektoren. Auf der Box ist allerdings nur eine alte fdisk v2.13-pre7 vorhanden, welches ein ungünstiges alignment erstellen würde (Die erste Partition würde bei Sektor 63 Anfangen.) Siehe auch: http://www.mikrocontroller.net/topic/240238?goto=2469942#2469440 Deswegen ist es Wichtig das man ein aktuelles fdisk benutzt. Somit packen wir ArchLinux erstmal auf einen Stick, booten von dem und richten dann die Platte ein: http://archlinuxarm.org/os/ArchLinuxARM-oxnas-latest.tar.gz ziehen und auf einen ext3 Formatierten Stick kopieren (Archivdatei wird später noch gebraucht) und dort entpacken. Die Datei /uImage.nopci aus dem Archiv (liegt nach dem entpacken im Root-verzeichnis des Sticks) per TFTP Anbieten (Beschreibung z.B. bei GoFlexHome#anderes_uBoot_Image_via_TFTP_testen) Einzelschritte z.B.: cd /media mkdir media/arch_stick mount /dev/sdXY /media/arch_stick cd arch_stick wget http://archlinuxarm.org/os/ArchLinuxARM-oxnas-latest.tar.gz tar -xzvf ArchLinuxARM-oxnas-latest.tar.gz sudo cp uImage.nopci /var/lib/tftpboot/ sudo chmod 777 -R /var/lib/tftpboot
Abklären: Ein einrichten der Platte per chroot geht nicht ?!?! P89626/usb_key_func-Stick + ArchLinux-Stick anschließen und Box neu starten, per UART Boot Prozess anhalten und das machen: setenv serverip 192.168.xxx.yyy; setenv ipaddr 192.168.xxx.zzz; setenv bootargs console=ttyS0,115200 root=/dev/sdb1 mem=128M; tftp 61000000 uImage.nopci; bootm 61000000
Hat man ArchLinux erfolgreich gebootet, kann man sich mit root / root einloggen und die Platte einrichtent, mit: fdisk /dev/sda Schritte in Grob:
Abklären: Neustart vom USB-Stick nötig ?!?!? Formatieren, z.B.: mkfs.ext3 -L "rootfs" /dev/sda1 mkfs.ext3 -L "rootfs2" /dev/sda2 mkswap /dev/sda3 mkfs.ext4 -L "NAS Daten" /dev/sda4 Hinweis: Momentan ist es wohl besser die Linux Partition als ext3 und nicht als ext4 anzulegen, weil uBoot noch keine ext4 Unterstürzung hat. rootfs Archiv vom Stick auf Platte entpacken: mkdir -p /mnt/arch_root mount /dev/sda1 /mnt/arch_root cp /ArchLinuxARM-oxnas-latest.tar.gz /mnt/arch_root/ cd /mnt/arch_root/ tar -xzvf ArchLinuxARM-oxnas-latest.tar.gz Nun sollte man ArchLinuxARM von Platte aus booten können. Also Neustart und in uBoot wieder das machen: setenv serverip 192.168.xxx.yyy; setenv ipaddr 192.168.xxx.zzz; setenv bootargs console=ttyS0,115200 root=/dev/sda1 mem=128M; tftp 61000000 uImage.nopci; bootm 61000000 Nun nehmen wir das rootfs von /dev/sda1 [Bearbeiten] dauerhaft per TFTP startenMöchte man nicht immer den Boot Prozess in uBoot unterbrechen, sondern automatisch per TFTP den Kernel booten, kann man folgendes in uBoot machen: setenv tftp_test 'ping $serverip' setenv tftp_boot 'tftp 61000000 uImage.nopci; setenv bootargs console=ttyS0,115200 root=/dev/sda1 mem=128M; bootm 61000000' setenv bootcmd 'run tftp_test tftp_boot; run boot_nand' saveenv reset Ist also der TFTP Server per ping $serverip erreichbar und das laden von uImage.nopci erfolgreicht, wird per TFTP gebootet. Ansonsten wird mit run boot_nand ein Fallback gemacht und das Original System vom NAND gebootet. Frage: Jemand eine bessere Lösung? [Bearbeiten] ArchLinuxARM EinrichtenDas frisch installierte ArchLinux erreicht man direkt schon über SSH mit dem Login root / root Die wichtigsten ersten Schritte: passwd # neues Passwort für root setzten pacman -Scc # Beide Fragen mit yes Beantworten pacman -Syyuf Mehr zu pacman: http://archlinuxarm.org/support/guides/applications/package-management Für Uhrzeit per NTP: pacman -S openntpd und ganz unten in /etc/rc.conf bei DAEMONS=() den Dienstnamen openntpd hinzufügen, siehe: http://archlinuxarm.org/support/guides/system/first-steps Die wichtigsten Einstellungen befinden sich in: nano /etc/rc.conf Link: https://wiki.archlinux.org/index.php/Beginners%27_Guide#.2Fetc.2Frc.conf [Bearbeiten] auf Deutsch_stellenIn rc.conf u.a. das ändern: LOCALE="de_DE.UTF-8" TIMEZONE="Europe/Berlin" HOSTNAME="PLX7820" /etc/locale.gen ändern in: de_DE.UTF-8 UTF-8 de_DE ISO-8859-1 de_DE@euro ISO-8859-15 #en_US.UTF-8 UTF-8 #en_US ISO-8859-1 Danach Befehl "locale-gen" ausführen. Es sollte dann eigentlich sowas herraus kommen: [root@PLX7820 ~]# locale-gen Generating locales... de_DE.UTF-8... done de_DE.ISO-8859-1... done de_DE.ISO-8859-15@euro... done Generation complete. Doch im ox820 kernel ist Momentan ein Bug, der das Produziert: de_DE.UTF-8...cannot map archive header: Invalid argument Siehe: http://archlinuxarm.org/forum/viewtopic.php?f=9&t=1143&start=10#p11655 mehr Info: https://wiki.archlinux.de/title/Arch_Linux_auf_Deutsch_stellen [Bearbeiten] SWAP einrichten/etc/fstab editieren und das einfügen: /dev/sda3 none swap sw 0 0 [Bearbeiten] Datenpartition einbindenMountpunkt erstellen: mkdir -p /media/daten Damit Samba User auch schreiben dürfen: chmod 777 /media/daten /etc/fstab editieren und das einfügen: /dev/sda4 /media/daten ext4 noatime,relatime,errors=remount-ro 0 1 [Bearbeiten] User einrichtenMöchte man nicht immer als root arbeiten, kann man sudo und einen/mehrere Benutzter einrichten: Sudo installieren: [root@PLX7820 ~]# pacman -Sy sudo Usergruppe sudo aktivieren:
Usergruppe sudo erstellen: [root@PLX7820 ~]# groupadd sudo Neuen Benutzer erstellen: [root@PLX7820 ~]# useradd -m -g users -G sudo -s /bin/bash MaxMuster [root@PLX7820 ~]# passwd MaxMuster Normaler Benutzer werden: [root@PLX7820 ~]# su MaxMuster [MaxMuster@PLX7820 root]$ Autocomplete auch für sudo Anktionen aktivieren: [MaxMuster@PLX7820 root]$ echo "complete -cf sudo" >> ~/.bashrc Links:
[Bearbeiten] SambaSamba installieren: pacman -Sy samba /etc/samba/smb.conf erstellen z.B. mit diesem Inhalt: [global]
workgroup = WORKGROUP
server string = ALARM
netbios name = ALARM
security = user
null passwords = yes
map to guest = bad user
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
# Disable Printer Support:
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
[Root]
path = /
read only = no
public = yes
writable = yes
guest ok = no
[Daten]
path = /media/daten
read only = no
public = yes
writable = yes
guest ok = no
Damit auch User auf die Samba Freigaben mit (guest ok = no) Zugreifen können, muß man sie explizit angeben, mit: pdbedit -a -u <Benutzername> Siehe auch:
[Bearbeiten] NFSPaket für einen NFS Server installieren: pacman -Sy nfs-utils Datei /etc/exports editieren und z.B. das Eintragen: /media/daten 192.168.xxx.0/24(rw,sync,no_subtree_check,wdelay,no_root_squash) Zum automatischen Start des NFS Servers nach dem Booten, /etc/rc.conf ändern und Deamons eintragen: DAEMONS=(... network rpcbind nfs-common nfs-server ...) mountent man auch NFS Freigaben via fstab, dann noch @netfs anhängen, also: DAEMONS=(... network rpcbind nfs-common nfs-server @netfs ...) Manuelles starten der Dienste: /etc/rc.d/rpcbind start /etc/rc.d/nfs-common start /etc/rc.d/nfs-server start Siehe auch https://wiki.archlinux.org/index.php/Nfs
[Bearbeiten] Backup vom rootfsEin einfaches Backup kann man so erstellen: tar -cvpzf /backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc \ --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/run \ --exclude=/media --exclude=/dev --exclude=/tmp --exclude=/var/cache \ --exclude=/var/run/ / [Bearbeiten] etc BackupMöchte man mal eben das ganze /etc/ Verzeichnis sichern, kann man sich z.B. /root/local_backup.sh mit dem folgenden Inhalt erstellen: #!/bin/sh set -x tar -cvpzf `date +%Y%m%d`_etc_backup.tar.gz /etc/ [Bearbeiten] links |