N1-install
N1-install copied to clipboard
Install Archlinux on Phicomm N1
??????
????????????????????????, ??????????????????uboot?????????. ????????? master ????????????, ?????????????????????????????????.
????????????
??????????????????????????? N1 ?????????
- ????????????
- ??????
- ?????? userspace
- ?????? kernel
- ?????? u-boot
- ????????????
- ????????? mmc
????????????
- 1??? N1, ?????? armbian ?????? ??????????????? aarch64 linux ??????, ???????????? N1?????????.
- 4GB ????????? U???
- ??????
??????
??????????????????????????????U???, ??????????????????????????????????????? mmc.
-
?????? U??? ?????????
sudo lsblk -f /dev/sd[a-z]
-
??? parted ??????
????????????????????? U?????? /dev/sda(????????????), ???U???????????? mbr ?????????, ??????2??????, ???????????? FAT32 ??????, ????????? 256MB, ???????????? linux ??????, ?????????????????????.
sudo parted -s -a optimal /dev/sda mklabel msdos mkpart primary fat32 0% 256MiB mkpart primary ext4 256MiB 100%
-
???????????????
?????????1???????????? FAT32, ?????? ARCHBOOT ; ?????????2???????????? EXT4 ?????? ARCHROOT.
sudo mkfs.vfat -F 32 -n ARCHBOOT /dev/sda1 sudo mkfs.ext4 -L ARCHROOT /dev/sda2
-
????????????
??? sda2 ????????? /mnt, ??? sda1 ????????? /mnt/boot
sudo mount /dev/sda2 /mnt sudo mkdir -p /mnt/boot sudo mount /dev/sda1 /mnt/boot
?????? userspace
userspace ??????????????????????????????????????????, archlinuxarm ?????????
cd ~ && curl -L -O http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
sudo bsdtar -xpvf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt # ??????, ???????????????, ????????????????????????.
rm -f ArchLinuxARM-aarch64-latest.tar.gz # ????????????
chroot ??? userspace
# ????????? DNS
sudo unlink /mnt/etc/resolv.conf
cat /etc/resolv.conf | sudo tee /mnt/etc/resolv.conf
# chroot
cd /mnt
sudo mount -t proc /proc proc
sudo mount --make-rslave --rbind /sys sys
sudo mount --make-rslave --rbind /dev dev
sudo mount --make-rslave --rbind /run run
cd /
sudo chroot /mnt /bin/bash
source /etc/profile
export PS1="(chroot) $PS1" # ????????????, ???????????? chroot ??????
# ???????????????????????? chroot ??????, ?????????????????? chroot?????????
???????????? userspace
echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
echo 'en_GB.UTF-8 UTF-8' >> /etc/locale.gen
locale-gen
localectl list-locales # ?????? locale-gen ????????? locales
localectl set-locale LANG=en_US.UTF-8 LC_TIME=en_GB.UTF-8 # ?????????????????????, ?????????????????????(????????????24????????????)
passwd root # ????????? root ??????, ??????????????????
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config # ??????ssh????????????root??????, ??????????????????, ???????????? N1 ???,????????????,?????? ssh key ??????
userdel -rf alarm # ??????????????????, ????????? root
??????????????????
systemctl enable systemd-networkd.service # ??????????????????????????????, ????????????
systemctl disable systemd-resolved.service # ??????????????????, ???????????????????????? /etc/resolv.conf
cat /etc/systemd/network/eth.network # ??????????????????, ????????? dhcp
?????? kernel
ping -c 3 www.163.com # ???????????? OK
pacman-key --init # ?????? pacman ?????????????????? key
pacman-key --populate archlinuxarm # ?????? pacman ?????????????????? key
pacman -Syu # ??????????????????
pacman -Q | grep linux-aarch64 # ?????????????????????????????? kernel
pacman -Rcsun linux-aarch64 # ??????????????? kernel
pacman -Rcsun linux-aarch64-headers # ??????????????? headers, ??????????????????.
??????????????????:
https://github.com/cattyhouse/pkgbuild-linux-phicomm-n1
pacman -U *.pkg.tar.zst # ??????
sync
???????????? u-boot
N1 ??????????????? u-boot, ???????????????????????? TEXT_OFFSET ???????????????, ???????????????????????????????????????, ???????????????????????? u-boot, ????????????????????????, ??????????????? boot ??????, N1 ????????????????????? u-boot, ?????????????????? u-boot
???????????? ????????? : N1 ?????? u-boot -> ???????????? U??? -> ?????? boot ????????? s905_autoscript -> ???????????? s905_autoscript ????????????????????? u-boot, ????????? u-boot.ext
???????????? ????????? : ?????? u-boot.ext ??????????????????????????? : bootcmd -> distro_bootcmd -> boot_targets -> bootcmd_usb0 -> usb_boot -> scan_dev_for_boot_part -> scan_dev_for_boot -> scan_dev_for_extlinux -> boot_extlinux, ??????????????? extlinux.conf
???????????? ????????? : ?????? extlinux.conf ?????????, ?????? root ?????? -> ?????? zImage ??? uInitrd ??????????????? kernel ???????????? ????????????. ??????, ?????????????????? linux ??????.
??????????????? chroot ??????
-
????????????
ping -c 3 www.163.com # ???????????? OK pacman -S --needed --noconfirm git cd /tmp && git clone --depth 1 https://github.com/cattyhouse/new-uboot-for-N1 cd new-uboot-for-N1 cp -fr * /boot/
-
?????? extlinux.conf
root_uuid=$(lsblk -n -o UUID /dev/sda2) sed -i "s/root_uuid/${root_uuid}/" /boot/extlinux/extlinux.conf # ?????????????????????????????? grep ${root_uuid} /boot/extlinux/extlinux.conf
-
?????? fstab
root_uuid=$(lsblk -n -o UUID /dev/sda2) boot_uuid=$(lsblk -n -o UUID /dev/sda1) echo "UUID=${root_uuid} / ext4 rw,relatime 0 1" > /etc/fstab echo "UUID=${boot_uuid} /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2" >> /etc/fstab cat /etc/fstab # ????????????
????????????
??????
exit # ?????? chroot ??????
cd / # ?????????????????????????????? /mnt
sudo umount -vfR /mnt # target is busy ?????????????????????
sudo reboot # ????????????.
??????
# ?????????????????? N1 ??? ip, ?????? ssh ??????
ssh root@n1_ip # ??????????????????
# ?????????????????????????????????, ????????????.
# TODO
????????? MMC
rsync ?????????????????? 100% ??????
# TODO