Linux, 工作, 生活, 家人

隨手札記, Ubuntu

MIPS/ARM64 Debian/Ubuntu debootstrap

這個時間點, debian mips 的 debootstrap 只有 jessie 是好的, sid 或是 stretch 都有問題.

$ debootstrap --verbose --foreign --arch mips jessie ./   http://ftp.tw.debian.org/debian

mips64 只有 mips64le , 沒有 mips64 .

其他的還是看這篇文章就好, 也快八年了.
[ARM][Linux] 建立 ARM 平台的 Debian System

懶得再開一篇, 改一改就好了.
如果是裝 ARM64 Ubuntu 呢? mirror 改到 ports.ubuntu.com 去就可以了, 也有 tw.ports.ubuntu.com 但是我記得是指向國外, 記得 arch 和版本號都要改
Ubuntu 16.04 LTS

$ debootstrap --verbose --foreign --arch arm64 xenial ./ubuntu http://tw.ports.ubuntu.com/ubuntu-ports

Ubuntu 18.04 LTS

$ debootstrap --verbose --foreign --arch arm64 bionic ./ubuntu http://tw.ports.ubuntu.com/ubuntu-ports

Ubuntu 20.04 LTS

$ debootstrap --verbose --foreign --arch arm64 focal ./ubuntu http://tw.ports.ubuntu.com/ubuntu-ports

Ubuntu 22.04 LTS

$ debootstrap --verbose --foreign --arch arm64 jammy ./ubuntu http://tw.ports.ubuntu.com/ubuntu-ports

Debian Stable arm (not ARM64)

debootstrap --verbose --foreign --arch armel stable ./   http://ftp.tw.debian.org/debian

我愛用 NFS 開機, 這是 u-boot NFS 的 example command

setenv bootargs 'console=ttyAMA0,115200n8 earlycon=pl011,0x87e028000000 debug maxcpus=24 rootwait rw ip=dhcp::eth2:off root=/dev/nfs rw nfsroot=10.0.0.30:/nfs/ubuntu1804,v3 coherent_pool=16M'

setenv start 'setenv ethact vnic2 ; dhcp ;  setenv serverip 10.0.0.30 ;  tftpboot $kernel_addr Image ; booti $kernel_addr - $fdtcontroladdr'

run start

如果是安裝的機器本身就是 ARM64 的機器,可以 chroot 到 ubuntu 內
如果是用 NFS 開機, 可以跳過這一個階段,直接執行下面的 run second-stage

cd /ubuntu
mount --bind /proc proc
mount --bind /dev dev
mount --bind /sys sys
cd etc
cp /etc/resolv.conf . 
cd / 
chroot ubuntu bash

執行, 解壓相關的 package (run second-stage)

/debootstrap/debootstrap --second-stage

Ubuntu 16.04 編輯 /etc/apt/source.list 加上

deb http://tw.ports.ubuntu.com/ubuntu-ports xenial main restricted
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates main restricted
deb-src http://tw.ports.ubuntu.com/ubuntu-ports xenial main restricted universe multiverse
deb-src http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates main restricted universe multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial universe
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates universe
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates multiverse

18.04

deb http://tw.ports.ubuntu.com/ubuntu-ports bionic main restricted
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates main restricted
deb-src http://tw.ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse
deb-src http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates main restricted universe multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic universe
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates universe
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates multiverse

20.04

deb http://tw.ports.ubuntu.com/ubuntu-ports focal main restricted
deb http://tw.ports.ubuntu.com/ubuntu-ports focal-updates main restricted
deb-src http://tw.ports.ubuntu.com/ubuntu-ports focal main restricted universe
multiverse
deb-src http://tw.ports.ubuntu.com/ubuntu-ports focal-updates main restricted u
niverse multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports focal universe
deb http://tw.ports.ubuntu.com/ubuntu-ports focal-updates universe
deb http://tw.ports.ubuntu.com/ubuntu-ports focal multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports focal-updates multiverse

22.04

deb http://tw.ports.ubuntu.com/ubuntu-ports jammy main restricted
deb http://tw.ports.ubuntu.com/ubuntu-ports jammy-updates main restricted
deb-src http://tw.ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse
deb-src http://tw.ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports jammy universe
deb http://tw.ports.ubuntu.com/ubuntu-ports jammy-updates universe
deb http://tw.ports.ubuntu.com/ubuntu-ports jammy multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports jammy-updates multiverse

加上 apt cache (如果你有內部的 proxy server)

$ echo "Acquire::http::Proxy \"http://192.168.1.254:3142\";" | tee -a /etc/apt/apt.conf

更新套件庫

$ apt update
$ apt -y upgrade

安裝必要的程式 (註:註 net-tools 過時了, 可以我還是習慣舊指令)

$ apt install -y vim openssh-server tmux btrfs-tools net-tools sudo wget resolvconf-admin

# 20.04/22.04 btrfs 改叫 btrfs-progs
$ apt install -y vim openssh-server tmux btrfs-progs net-tools sudo wget resolvconf-admin

Add User

$ adduser [username]

順便改 root 的密碼

$ passwd root

sudo 加上無密碼 請參考這個連結

註: 18.04 可能要先設定密碼之後重開機一次才能, 更新系統環境變數, 安裝套件以便之後的設定

註2: 18.04 如果時間差太多會 update 失敗, 要先調整時間到今天
先裝 nfs-common 增加 nfs access 的速度

$ apt install -y nfs-common

備用, 17.04 後似乎都會用 resolvconf 當 DNS service, 但是不知道為什麼不會取用 DHCP 得到的 DNS

$ systemctl disable systemd-resolved.service
$ service systemd-resolved stop
$ echo "nameserver 8.8.8.8" > /etc/resolv.conf

這樣看看會不會正常

編輯 /etc/hostname
取一個合適的名字, 預設是用執行 debootstrap 的主機名稱

編輯 /etc/network/interface

最後要產生 utf-8 的 locale 檔案

$ sudo locale-gen en_US.UTF-8

發佈留言