سلام سلام
اول از همه اینو بگم که سیستم اصلی خود من لینوکسه بنابراین تمام توضیحات و کامند ها هم متناسب با اون خواهد بود.
منابع اولیه این پست این صفحات هستن:
https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3
https://www.geeksforgeeks.org/linux-unix/install-xfce-desktop-on-arch-linux/
اول از همه خب شما به یک رسپری پای نیاز دارید و یک SDCARD Reader و کارت حافظه که بهتره حدقل 8 گیگ باشه، من خودم از یه کارت حافظه 64 گیگ استفاده میکنم.
مدل رسپری پای من هم Pi 3 B V1.2 هستش.
اگه حوصله ندارید مستقیما از این اسکریپت archarm-installer.sh استفاده کنید:
chmod +x archarm-installer.sh
sudo ./archarm-installer.shهمه چیز automate شده و فقط کافیه شما دیوایس کارت حافظتون رو انتخاب کنید تا خودش اون رو آماده کنه.
اگه با این روش مموریتون رو بوتیبل کردید، بزنید روی این لینک و بقیه روند رو طی کنید.
اگر هم دوست دارید یاد بگیرید از همینجا بقیشو بخونید...
اول از همه یه دایرکتوری میسازیم به اسم arch-install که تمام فایل های مورد نیازمون رو بریزیم داخلش:
mkdir arch-install
cd arch-install/با استفاده از ابزار wget میایم تا فایل مورد نیازمون رو دانلود کنیم.
wget -c "http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-armv7-latest.tar.gz"فلگ -c برای اینکه که دانلود شما ذخیره بشه و اگه وسطش قطع شد به مشکل نخورید.
حالا کارت حافظه خودتون رو به سیستمتون وصل کنید و به کمک ابزار lsblk اسم دیوایستون رو از روی مقدار حافظش پیدا کنید.
مثلا برای من اسمش sdX هستش.
اول از همه میریم با fdisk یه پارتیشن بندی خیلی ساده انجام بدیم:
fdisk /dev/sdXاول چندتا d بزنید تا هرچی پارتیشن از قبل موجود هست پاک بشه.
بعدش یه n بزنید تا پارتیشن جدید ایجاد بشه، این قراره پارتیشن boot مون باشه.
این شکلی پیش برید و پر کنید، منتهی هرجا [Enter] نوشتم یعنی باید چیزی ننویسید و رد بشید:
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): [Enter]
Using default response p.
Partition number (1-4, default 1): [Enter]
First sector (2048-122138623, default 2048): [Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-122138623, default 122138623): +1G
Created a new partition 1 of type 'Linux' and of size 1 GiB.
Partition #1 contains a vfat signature.
Do you want to remove the signature? [Y]es/[N]o: Y
The signature will be removed by a write command.
Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all): c
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.
بعدش هم به همین شکل میریم پارتیشن root مون رو بسازیم و هردو پارتیشن رو ذخیره کنیم و از fdisk خارج بشیم:
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): [Enter]
Using default response p.
Partition number (2-4, default 2): [Enter]
First sector (2099200-122138623, default 2099200): [Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-122138623, default 122138623): [Enter]
Created a new partition 2 of type 'Linux' and of size 57.2 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
پس پارتیشن بندیمون به این شکل شد که پارتیشن اول برای بوت هستش و یک گیگ بهش فضا دادیم و از نوع FAT32 هستش و پارتیشن دوم برای روت هستش و باقی فضا رو بهش دادیم و از نوع ext4 خواهد بود.
پارتیشن هارو فرمت میکنیم:
sudo mkfs.vfat /dev/sdX1
sudo mkfs.ext4 /dev/sdX2اگه سوالی چیزی پرسید Enter بزنید فقط.
و بعد دوتا دایرکتوری boot و root رو میسازیم و ماونت(وصل) شون میکنیم به پارتیشن های خودشون:
mkdir boot root
sudo mount /dev/sdX1 boot
sudo mount /dev/sdX2 rootحالا وقتشه که فایل Arch رو استخراج کنیم روی SD Card مون:
sudo bsdtar -xpf ArchLinuxARM-rpi-armv7-latest.tar.gz -C rootحالا باید فایل های boot رو منتقل کنیم ولی خب نمیتونیم از mv استفاده کنیم چون FAT32 خودش owner و group نداره، پس همه فایلها روی کارت SD با owner شما توی لینوکس خودتون نشون داده میشن و این طبیعیه.
میتونیم خیلی ساده تر دستی کپی کنیم و بعد پاک کنیم:
sudo cp -r root/boot/* boot/
sudo rm -rf root/boot/*
باید فایل cmdline.txt برای بوت لودرمون بسازیم:
echo "root=/dev/mmcblk0p2 rw console=serial0,115200 console=tty1 rootwait" | sudo tee boot/cmdline.txtحالا باید پا SD Card مون رو جدا کنیم و بریم رسپری پای مون رو بوت کنیم...
sync
sudo umount boot rootخب حالا رم ریدر رو از سیتم جدا کنید و کارت حافظه رو در بیارید و توی رسپری پای تون بزاریدش رسپری پای رو به یه مانیتور و کیبورد و ماوس وصل کنید و بعد به برق وصل کنید
الان باید بوت شدنش رو ببینید...
اینجا شما با یه لاگین اولیه روبرو هستید.
بصورت پیشفرض یه یوزر وجود داره که یوزرنیم و پسوردش alarm هستش.
وقتی لاگین رو دیدین هم یوزرنیم هم پسورد رو اینو میزنید.
پسورد root هم به طور پیشفرض همین root هستش.
با su وارد روت میشیم:
$ su
pass: rootخب حالا باید رسپری پای رو به اینترنت وصل کنیم
اگه با کابل شبکه میخواهید وصل کنید خب بکنید خودش کانکت میشه
اگه با کابل USB میخواهید از نت گوشیتون وصل بشید هم کافیه با سیم به رسپری پای تون وصلش کنید و USB tethering رو از تنظیمات گوشی روشن کنید اینم خودش کانکت میشه
منتهی اگه میخواهید به wifi وصل یشید باید از کامند wifi-menu استفاده کنید که خب اضلا سخت نیستش، امتحانش کنید خودتون :)
حالا که به نت وصل شدیم وقتشه یه آپدیت اولیه داشته باشیم:
pacman-key --init
pacman-key --populate archlinuxarm
pacman -Syuپسورد root رو عوض میکنیم:
passwdبعد اسم سیستم رو عوض میکنیم:
hostnamectl set-hostname YOURHOSTNAMEحالا میریم که یه یوزر جدید برای خودمون بسازیم و براش پسورد بزاریم:
useradd -d /home/YOURUSERNAME -m -G wheel -s /bin/bash YOURUSERNAME
passwd YOURUSERNAMEبعدش یه Ctrl+D میزنیم تا دوباره لاگین کنیم منتهی اینبار با یوزری که تازه ساختیم، بعدش هم با su وارد روت میشیم با پسورد جدیدی که واسش گذاشته بودیم و یوزر alarm رو حذف میکنیم:
userdel alarmحالا هم بریم sudo اصافه کنیم (چون نداریم):
pacman -S sudo
usermod -aG wheel $(whoami)بعد ادیتور باز میکنیم:
nano /etc/sudoersبگردید یه لاینی رو پیدا کنید که اینو نوشته باشه:
#%wheel ALL=(ALL) ALL
و اون # اولش رو پاک کنید حالا یه Ctrl+S و یه Ctrl+X بزنید.
خب حالا دیگه وقتشه محیط گرافیکیمون روی دسکتاپ sway بالا بیاریم:
pacman -S sway swaybg swayidle foot wmenu waybar wofi dunst alacritty terminator
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
pacman -S networkmanager network-manager-applet gnome-keyring
systemctl enable NetworkManager
systemctl start NetworkManager
nm-appletبعد هم یه ریبوت میکنیم:
reboot