linux-odroid内核没有预编译AX25模块,无法正常使用 kissattach 。主线内核预编译了这些模块,可惜与我的电视盒子兼容性不佳,无法正常重启,对于远程使用而言无法接受。于是只好自己编译内核了。
获取内核软件包并修改配置文件 1 2 3 git clone https://gitlab.manjaro.org/manjaro-arm/packages/core/linux-odroid.gitcd linux-odroid vim config
以下配置供参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1732 CONFIG_HAMRADIO=y 1733 1734 # 1735 # Packet Radio protocols 1736 # 1737 CONFIG_AX25=m 1738 CONFIG_AX25_DAMA_SLAVE=y 1739 CONFIG_NETROM=m 1740 CONFIG_ROSE=m 1741 1742 # 1743 # AX.25 network device drivers 1744 # 1745 CONFIG_MKISS=m 1746 CONFIG_6PACK=m 1747 CONFIG_BPQETHER=m 1748 CONFIG_BAYCOM_SER_FDX=m 1749 CONFIG_BAYCOM_SER_HDX=m 1750 CONFIG_YAM=m 1751 # end of AX.25 network device drivers
开始打包 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 makepkg --skipchecksums ==> Making package: linux-odroid 5.18.12-1 (Fri 22 Jul 2022 10:10:46 AM CST) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Found 65a1da3b24ddcf7e4ddc52357d6f22d62ba441ad.tar.gz -> Found 0065-add-ugoos-device.patch -> Found config -> Found linux.preset -> Found 60-linux.hook -> Found 90-linux.hook ==> WARNING: Skipping verification of source file checksums. ==> Extracting sources... -> Extracting 65a1da3b24ddcf7e4ddc52357d6f22d62ba441ad.tar.gz with bsdtar
2000 YEARS LATER 若干小时后编译还没有完成的迹象,还是找开发者吧 😂 已经私信了linux-odroid管理员,如果一切顺利linux-odroid 5.18.12即可支持AX25。
再更新 发现编译已完成,R3300-M四核马力全开足足跑了5个小时。编译完成前的输出如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ==> Tidying install... -> Removing libtool files... -> Purging unwanted files... -> Removing static library files... -> Compressing man and info pages... ==> Checking for packaging issues... ==> Creating package "linux-odroid" ... -> Generating .PKGINFO file... -> Generating .BUILDINFO file... -> Adding install file... -> Generating .MTREE file... -> Compressing package... ==> Starting package_linux-odroid-headers()... Removing scripts/dtc/include-prefixes/openrisc Removing scripts/dtc/include-prefixes/nios2 Removing scripts/dtc/include-prefixes/mips Removing scripts/dtc/include-prefixes/arm64 Removing scripts/dtc/include-prefixes/microblaze Removing scripts/dtc/include-prefixes/arm Removing scripts/dtc/include-prefixes/arc Removing scripts/dtc/include-prefixes/h8300 Removing scripts/dtc/include-prefixes/powerpc Removing scripts/dtc/include-prefixes/sh Removing scripts/dtc/include-prefixes/xtensa ==> Tidying install... -> Removing libtool files... -> Purging unwanted files... -> Removing static library files... -> Compressing man and info pages... ==> Checking for packaging issues... ==> Creating package "linux-odroid-headers" ... -> Generating .PKGINFO file... -> Generating .BUILDINFO file... -> Generating .MTREE file... -> Compressing package... ==> Leaving fakeroot environment. ==> Finished making: linux-odroid 5.18.12-1 (Fri 22 Jul 2022 02:14:03 PM CST)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 marly@manjaro-minimal /linux-odroid master ls Permissions Size User Group Date Modified Name drwxr-xr-x - marly marly 21 Jul 20:42 .git .rw-r--r-- 241 marly marly 21 Jul 20:42 .gitlab-ci.yml .rw-r--r-- 4.3k marly marly 22 Jul 10:04 0065-add-ugoos-device.patch .rw-r--r-- 282 marly marly 21 Jul 20:42 60-linux.hook .rw-r--r-- 207M marly marly 22 Jul 10:04 65a1da3b24ddcf7e4ddc52357d6f22d62ba441ad.tar.gz .rw-r--r-- 229 marly marly 21 Jul 20:42 90-linux.hook .rwxr-xr-x 228k marly marly 22 Jul 9:58 config .rw-r--r-- 68M marly marly 22 Jul 14:12 linux-odroid-5.18.12-1-aarch64.pkg.tar.zst .rw-r--r-- 12M marly marly 22 Jul 14:14 linux-odroid-headers-5.18.12-1-aarch64.pkg.tar.zst .rw-r--r-- 239 marly marly 21 Jul 20:42 linux-odroid.install .rw-r--r-- 234 marly marly 21 Jul 20:42 linux.preset drwxr-xr-x - marly marly 22 Jul 14:12 pkg .rwxr-xr-x 7.0k marly marly 21 Jul 20:42 PKGBUILD .rw-r--r-- 2.1k marly marly 21 Jul 20:42 s912-dmip-mhz.patch drwxr-xr-x - marly marly 22 Jul 10:14 src
成功编译了内核和headers,运行 sudo pacman -U ./linux-odroid-5.18.12-1-aarch64.pkg.tar.zst ./linux-odroid-headers-5.18.12-1-aarch64.pkg.tar.zst
即可安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 marly@manjaro-minimal /linux-odroid master sudo pacman -U ./linux-odroid-5.18.12-1-aarch64.pkg.tar.zst ./linux-odroid-headers-5.18.12-1-aarch64.pkg.tar.zst [sudo ] password for marly: loading packages... resolving dependencies... looking for conflicting packages... :: linux-odroid and linux are in conflict. Remove linux? [y/N] y Packages (3) linux-5.18.11-1 [removal] linux-odroid-5.18.12-1 linux-odroid-headers-5.18.12-1 Total Installed Size: 139.23 MiB Net Upgrade Size: 9.91 MiB :: Proceed with installation? [Y/n] y (2/2) checking keys in keyring [###########################################] 100% (2/2) checking package integrity [###########################################] 100% (2/2) loading package files [###########################################] 100% (2/2) checking for file conflicts [###########################################] 100% (3/3) checking available disk space [###########################################] 100% :: Processing package changes... (1/1) removing linux [###########################################] 100% (1/2) installing linux-odroid [###########################################] 100% Optional dependencies for linux-odroid crda: to set the correct wireless channels of your country [installed] (2/2) upgrading linux-odroid-headers [###########################################] 100% :: Running post-transaction hooks... (1/4) Arming ConditionNeedsUpdate... (2/4) Updating module dependencies... (3/4) Updating linux-odroid module dependencies... (4/4) Updating linux-odroid initcpios... ==> Building image from preset: /etc/mkinitcpio.d/linux-odroid.preset: 'default' -> -k 5.18.12-1-MANJARO-ARM-ODROID -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img ==> Starting build: 5.18.12-1-MANJARO-ARM-ODROID -> Running build hook: [base] -> Running build hook: [udev] -> Running build hook: [plymouth] -> Running build hook: [autodetect] -> Running build hook: [modconf] -> Running build hook: [block] -> Running build hook: [filesystems] -> Running build hook: [keyboard] -> Running build hook: [fsck] ==> WARNING: No modules were added to the image. This is probably not what you want. ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img ==> Image generation successful
至此编译安装内核成功完成,重启盒子继续折腾。
内核测试 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 uname -a Linux manjaro-minimal 5.18.12-1-MANJARO-ARM-ODROID modinfo ax25 name: ax25 filename: (builtin )alias : net-pf-3 license: GPL file: net/ax25/ax25 description: The amateur radio AX.25 link layer protocol author: Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk> modinfo mkiss name: mkiss filename: (builtin )alias : tty-ldisc-5 license: GPL file: drivers/net/hamradio/mkiss description: KISS driver for AX.25 over TTYs author: Ralf Baechle DL5RB <ralf@linux-mips.org> parm: crc_force:crc [0 = auto | 1 = none | 2 = flexnet | 3 = smack] (int)sudo direwolf -p Dire Wolf DEVELOPMENT version 1.7 E (Jun 29 2022) Includes optional support for : cm108-ptt dns-sd Dire Wolf requires only privileges available to ordinary users . Running this as root is an unnecessary security risk. Reading config file direwolf.conf Audio device for both receive and transmit: plughw:0,0 (channel 0) Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, A+, 44100 sample rate. Ready to accept AGW client application 0 on port 8000 ... Ready to accept KISS TCP client application 0 on port 8001 ... DNS-SD: Avahi: Failed to create Avahi client: Daemon not running Virtual KISS TNC is available on /dev/pts/1 Created symlink /tmp/kisstnc -> /dev/pts/1sudo kissattach /dev/pts/1 wl2k AX.25 port wl2k bound to device ax0
测试结果符合预期。