背景
今天嘗試安裝龍芯版 Linux,本來希望能安裝 Debian 版,但只找到一些文件,沒找到可安裝版的 ISO。
後來順著這篇文章找到了Arch Linux,就嘗試安裝了一下。
安裝後發現竟然不會配置網路 😂。而且龍芯版由於是在 QEMU 虛擬機器裡,執行速度也較慢。所以,我想我需要先學習一下 Arch Linux。
我用的是蘋果電腦,ARM 晶片,所以,希望能安裝 ARM 版的 Linux,這樣執行速才最快。
在 OrbStack 上安裝 Arch Linux
在Arch Linux 下載頁面上,可以下載到 x86_64 版本的 ISO,但沒找到 ARM 版。後來想起來我用的是OrbStack,開啟圖形介面,直接按嚮導安裝了一個 Arch Linux,分分鐘就裝好了。然後,測試了網路、編譯安裝 FreeSWITCH 都沒有任何問題。
這是一個好的開端,但上述方法安裝的 Arch Linux 沒有任何網路問題,網路都是自動配置好的,因此,我還需要進一步學習。
在 UTM 中安裝 Arch Linux
後來在 https://github.com/JackMyers001/archiso-aarch64/releases 頁面上找到一個 2021 年的 ARM 版 ISO。雖然有些舊,但學習應該夠用了。
開啟我的UTM虛擬機器,我建立了一個新的 ARM 機器,使用上面下載的 ISO 就開始安裝了。
Arch Linux 與我熟悉的 Debian 和 CentOS 安裝步驟有很大不同!
Arch Linux ISO 啟動後,進入一個 Shell 環境,竟然沒有任何安裝嚮導。還好我的 Linux 基礎比較紮實,順著教程也一步一步安裝完成了。過程主要參考了這個頁面。
從光碟啟動虛擬機器。fdisk -l
找到我的硬碟,看起來是/dev/vda
。然後,使用fdisk /dev/vda
命令分割槽。首先輸入g
,告訴硬碟使用 GPT 分割槽格式。然後,建立 3 個分割槽,分別是:
vda1
:UEFI 分割槽,1Gvda2
:Swap 分割槽,2Gvda3
:根分割槽,剩餘空間
格式化分割槽:
mkfs.fat -F 32 /dev/vda1
mkswap /dev/vda2
mkfs.ext4 /dev/vda3
掛載分割槽:
mount /dev/vda3 /mnt
mkdir /mnt/boot
mount /dev/vda1 /mnt/boot
安裝系統。
pacstrap -K /mnt base linux linux-firmware
文件上說要使用-K
,但我的映象好像比較舊,去掉-K
才安裝成功。
生成fstab
檔案:
genfstab -U /mnt >> /mnt/etc/fstab
chroot
到新安裝的系統:
arch-chroot /mnt
設定 root 密碼:
passwd
安裝載入程式,先安裝grub
:
pacman -S grub efibootmgr
我使用 UEFI 啟動,將grub
安裝到 UEFI 分割槽:
grub-install --target=arm64-efi --efi-directory=/root/EFI --removable
有人說這個--removable
很有用,我沒有確認。
生成grub
配置檔案:
grub-mkconfig -o /boot/grub/grub.cfg
裝完後,很重要的一步,安裝dhclient
,以便能使用 DHCP 獲取 IP 地址:
pacman -S dhclient
其他一些設定好像無關緊要了。exit
退出chroot
環境,彈出光碟,reboot
重啟就可以進入 Arch Linux 了。
進入後,如果沒有網路,手工執行dhclient
,就可以獲取 IP 地址了。
Linux 能上網以後,就誰都不怕了,我可以繼續安裝其他軟體了。
龍芯版 Arch Linux
透過上述折騰,也查了一些文件,總算基本上了解了 Arch Linux。誰讓咱還有些 Linux 功底呢。
我推測,龍芯版 Linux 預設沒有安裝dhclient
,才導致我上不了網。重灌一遍。
我的 UTM 不支援龍芯,因此,我只能使用 QEMU 了。
下載:
- 韌體:https://mirrors.pku.edu.cn/loongarch/archlinux/images/QEMU_EFI_7.2.fd
- ISO:https://mirrors.pku.edu.cn/loongarch/archlinux/iso/latest/archlinux-loong64.iso
建立一個硬碟:
qemu-img create -f qcow2 hd.qcow2 100G
啟動虛擬機器:
qemu-system-loongarch64 \
-m 5G \
-cpu la464-loongarch-cpu \
-machine virt \
-smp 4 \
-bios QEMU_EFI_7.2.fd \
-serial stdio \
-device virtio-gpu-pci \
-net nic -net user \
-device nec-usb-xhci,id=xhci,addr=0x1b \
-device usb-tablet,id=tablet,bus=xhci.0,port=1 \
-device usb-kbd,id=keyboard,bus=xhci.0,port=2 \
-cdrom archlinux-loong64.iso \
-boot once=d \
-hda hd.qcow2
令人驚喜的是,龍芯版的 ISO 竟然有一個安裝嚮導。雖然不像 Debian 那麼直觀。
順著安裝嚮導,我做了如下設定:
- 映象:選 China
- 磁碟配置:使用最佳,選了
/dev/vdb
,它是我的硬碟。 - 設定 root 密碼。
- 附加軟體包:當然選了
dhclient
。 - 網路配置:將 ISO 中的配置複製到安裝中。這個很有用。
其他的選擇可以使用預設值,也可以自己定製。接下來按嚮導進行安裝就可以了。
安裝完成後,重啟,進入 Shell,顯示如下:
# uname -a
Linux archlinux 6.7.0-6 #1 SMP PREEMPT Tue, 09 Jan 2024 11:51:31 +0000 loongarch64 GNU/Linux
我是使用如下命令啟動 QEMU 的,透過將22
埠對映為2022
,可以在外面連線虛擬機器中的 Linux。
qemu-system-loongarch64 \
-m 5G \
-cpu la464-loongarch-cpu \
-machine virt \
-smp cpus=8,sockets=1,cores=8,threads=1 \
-bios media/QEMU_EFI_7.2.fd \
-serial stdio \
-device virtio-gpu-pci \
-net nic -net user,hostfwd=tcp::2022-:22 \
-device nec-usb-xhci,id=xhci,addr=0x1b \
-device usb-tablet,id=tablet,bus=xhci.0,port=1 \
-device usb-kbd,id=keyboard,bus=xhci.0,port=2 \
-hda hd.qcow2
連網,就可以繼續安裝其他軟體了。我安裝了 Git、Vim 等,現在正在編譯 FreeSWITCH。目測沒啥問題,就是在 ARM 上模擬loongarch64
CPU,超級慢。
不知道是否有人能貢獻個真正的 CPU。後續,我會寫寫在龍芯和 Arch Linux 上安裝 FreeSWITCH 的過程。
最近有人批評我寫的文章比較水。流水賬嘛,水一點就水一點好了 😂。
如果有人知道去哪裡下載龍芯版的 UOS,也歡迎留言告訴我:https://www.cnblogs.com/dujinfang/p/18095472 。
本文永久連結:https://www.dujinfang.com/2024/03/25/arch-linux.html 。