On 01/05/2020 20.48, Carlos E. R. wrote:
On 01/05/2020 16.28, Carlos E. R. wrote:
On 01/05/2020 01.06, Marc Chamberlin wrote:
On 4/29/20 12:10 AM, Carlos E. R. wrote:
On 29/04/2020 06.13, Marc Chamberlin wrote:
...
after that, reboot. You should be back to kernel-default-4.12.14 running. I am doing that as well, so that will take some time to run.
I will continue with plan C proper after my lunch and siesta.
Bad news: Masaru Nomiya wrote that the kernel config file does not contains an entry for the mkiss module, and I confirm that.
I will try to build the module following a modification of what he sent on his script, and see if I can load that module.
Open a terminal, and "su -".
Verification:
Telcontar:~ # uname -a Linux Telcontar 4.12.14-lp151.28.48-default #1 SMP Fri Apr 17 05:38:36 UTC 2020 (18849d1) x86_64 x86_64 x86_64 GNU/Linux Telcontar:~ #
You should have that version.
cd /usr/src/linux
zcat /proc/config.gz > .config
Verification:
Telcontar:~ # cd /usr/src/linux Telcontar:/usr/src/linux # zcat /proc/config.gz > .config Telcontar:/usr/src/linux # grep -i mkiss .config Telcontar:/usr/src/linux #
make silentoldconfig make scripts make prepare
Notes:
a) Purists will say that it is wrong to do this as root. Well, it happens that none of the above runs as user, because of the ownership of the files. Doing as user is more complicated, so I will not.
b) I never run "make cloneconfig" on the SUSE kernel. I was told long ago to never do it. The *openSUSE* kernel rpm is installed as clean as it should be.
Firs, I recreate the source tree: rpm --erase rpm --erase --nodeps kernel-devel-4.12.14-lp151.28.48.1.noarch delete what remains of directory /usr/src/linux-4.12.14-lp151.28.48 Install them again from local copy: rpm --install /data/storage_c/repositorios_zypp/15_1/repo-update/noarch/kernel-devel-4.12.14-lp151.28.48.1.noarch.rpm /data/storage_c/repositorios_zypp/15_1/repo-update/noarch/kernel-source-4.12.14-lp151.28.48.1.noarch.rpm Ok, I will try to do it as user in a local build directory. In my case, "~/tmp/kernel", which is empty. Prepare the sources: zcat /proc/config.gz > .config make silentoldconfig but instead, use: make -C /usr/src/linux O=$PWD silentoldconfig Then make -C /usr/src/linux O=$PWD prepare make -C /usr/src/linux O=$PWD scripts This results in: cer@Telcontar:~/tmp/kernel> l total 220 drwxr-xr-x 8 cer users 184 May 2 13:32 ./ drwxr-xr-x 121 cer users 8192 May 2 12:42 ../ -rw-r--r-- 1 cer users 22 May 2 13:32 .21461.d -rw-r--r-- 1 cer users 200089 May 2 13:32 .config -rw-r--r-- 1 cer users 850 May 2 13:32 .missing-syscalls.d drwxr-xr-x 2 cer users 6 May 2 13:32 .tmp_versions/ -rw-r--r-- 1 cer users 629 May 2 13:32 Makefile drwxr-xr-x 3 cer users 17 May 2 13:32 arch/ drwxr-xr-x 4 cer users 37 May 2 13:32 include/ drwxr-xr-x 2 cer users 43 May 2 13:32 kernel/ drwxr-xr-x 7 cer users 291 May 2 13:32 scripts/ lrwxrwxrwx 1 cer users 34 May 2 13:32 source -> /usr/src/linux-4.12.14-lp151.28.48/ drwxr-xr-x 3 cer users 21 May 2 13:32 tools/ cer@Telcontar:~/tmp/kernel> I make a cp of the config cer@Telcontar:~/tmp/kernel> cp .config .configcopy Now: make -C /usr/src/linux O=$PWD menuconfig We get this a text mode menu system: .config - Linux/x86 4.12.14 Kernel Configuration ────────────────────────────────────────────────────────────────────────────── ┌──────────────── Linux/x86 4.12.14 Kernel Configuration ─────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty │ │ submenus ----). Highlighted letters are hotkeys. Pressing <Y> │ │ includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to │ │ exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ [*] 64-bit kernel │ │ │ │ General setup ---> │ │ │ │ [*] Enable loadable module support ---> │ │ │ │ [*] Enable the block layer ---> │ │ │ │ Processor type and features ---> │ │ │ │ Power management and ACPI options ---> │ │ │ │ Bus options (PCI etc.) ---> │ │ │ │ Executable file formats / Emulations ---> │ │ │ │ [*] Networking support ---> │ │ │ │ Device Drivers ---> │ │ │ └────↓(+)─────────────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └─────────────────────────────────────────────────────────────────────────┘ We need to enable "mkiss". Where is it? Use "/" for search. Reply: .config - Linux/x86 4.12.14 Kernel Configuration → Search (mkiss) ───────────────────────────────────────────────────────────── ┌──────────────────────────── Search Results ─────────────────────────────┐ │ Symbol: MKISS [=n] │ │ Type : tristate │ │ Prompt: Serial port KISS driver │ │ Location: │ │ -> Networking support (NET [=y]) │ │ (1) -> Amateur Radio support (HAMRADIO [=n]) │ │ -> Amateur Radio AX.25 Level 2 protocol (AX25 [=n]) │ │ -> AX.25 network device drivers │ │ Defined at drivers/net/hamradio/Kconfig:1 │ │ Depends on: NET [=y] && HAMRADIO [=n] && AX25 [=n] && TTY [=y] │ │ Selects: CRC16 [=y] │ │ │ │ │ │ │ │ │ │ │ ├─────────────────────────────────────────────────────────────────(100%)──┤ │ < Exit > │ └─────────────────────────────────────────────────────────────────────────┘ We have to enable first "HAMRADIO", which is under "Networking support": ┌────────────────────────── Networking support ───────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty │ │ submenus ----). Highlighted letters are hotkeys. Pressing <Y> │ │ includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to │ │ exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ --- Networking support │ │ │ │ Networking options ---> │ │ │ │ [ ] Amateur Radio support ---- <======== │ │ │ │ <M> CAN bus subsystem support ---> │ │ │ │ <M> IrDA (infrared) subsystem support ---> │ │ │ │ <M> Bluetooth subsystem support ---> │ │ │ │ < > RxRPC session sockets │ │ │ │ <M> KCM sockets │ │ │ │ -*- Wireless ---> │ │ │ │ <M> WiMAX Wireless Broadband support ---> │ │ │ └────↓(+)─────────────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ Type yes, then enter (select). .config - Linux/x86 4.12.14 Kernel Configuration → Networking support → Amateur Radio support ───────────────────────────────── ┌───────────────────────── Amateur Radio support ─────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty │ │ submenus ----). Highlighted letters are hotkeys. Pressing <Y> │ │ includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to │ │ exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ --- Amateur Radio support │ │ │ │ *** Packet Radio protocols *** │ │ │ │ < > Amateur Radio AX.25 Level 2 protocol (NEW) <==== │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └─────────────────────────────────────────────────────────────────────────┘ M for module. Now need "AX.25 network device drivers" in resulting screen: .config - Linux/x86 4.12.14 Kernel Configuration → Networking support → Amateur Radio support ───────────────────────────────── ┌───────────────────────── Amateur Radio support ─────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty │ │ submenus ----). Highlighted letters are hotkeys. Pressing <Y> │ │ includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to │ │ exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ --- Amateur Radio support │ │ │ │ *** Packet Radio protocols *** │ │ │ │ <M> Amateur Radio AX.25 Level 2 protocol │ │ │ │ [*] AX.25 DAMA Slave support (NEW) │ │ │ │ < > Amateur Radio NET/ROM protocol (NEW) │ │ │ │ < > Amateur Radio X.25 PLP (Rose) (NEW) │ │ │ │ AX.25 network device drivers ---> <==== │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └─────────────────────────────────────────────────────────────────────────┘ Select. Now we can see the "kiss" module. .config - Linux/x86 4.12.14 Kernel Configuration → Networking support → Amateur Radio support → AX.25 network device drivers ── ┌───────────────────── AX.25 network device drivers ──────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty │ │ submenus ----). Highlighted letters are hotkeys. Pressing <Y> │ │ includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to │ │ exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ < > Serial port KISS driver (NEW) <============ │ │ │ │ < > Serial port 6PACK driver (NEW) │ │ │ │ < > BPQ Ethernet driver (NEW) │ │ │ │ < > BAYCOM ser12 fullduplex driver for AX.25 (NEW) │ │ │ │ < > BAYCOM ser12 halfduplex driver for AX.25 (NEW) │ │ │ │ < > BAYCOM picpar and par96 driver for AX.25 (NEW) │ │ │ │ < > YAM driver for AX.25 (NEW) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └─────────────────────────────────────────────────────────────────────────┘ "M". Exit and save. Check: cer@Telcontar:~/tmp/kernel> diff -y --suppress-common-lines .config .configcopy # Linux/x86 4.12.14 Kernel Configuration | # Linux/x86_64 4.12.14 Kernel Configuration CONFIG_HAMRADIO=y | # CONFIG_HAMRADIO is not set < # < # Packet Radio protocols < # < CONFIG_AX25=m < CONFIG_AX25_DAMA_SLAVE=y < # CONFIG_NETROM is not set < # CONFIG_ROSE is not set < < # < # AX.25 network device drivers < # < CONFIG_MKISS=m < # CONFIG_6PACK is not set < # CONFIG_BPQETHER is not set < # CONFIG_BAYCOM_SER_FDX is not set < # CONFIG_BAYCOM_SER_HDX is not set < # CONFIG_BAYCOM_PAR is not set < # CONFIG_YAM is not set < cer@Telcontar:~/tmp/kernel> Andrei Borzenkov says that we have to build "ax25" first. Lets copy the instructions from "/usr/src/linux/README.SUSE" here: BUILDING ADDITIONAL (EXTERNAL) MODULES ... (1) by configuring the kernel sources in a separate build directory (see HOW TO CONFIGURE THE KERNEL SOURCES), or Which we just did. (2) by using one of the standard configurations in /usr/src/linux-obj/$ARCH/$FLAVOR, or (3) by creating a Kernel Module Package (KMP) as described in the Kernel Module Packages Manual, https://drivers.suse.com/doc/kmpm/. The first method involves the following steps: (1) Install the kernel-source package. (2) Configure the kernel, see HOW TO CONFIGURE THE KERNEL SOURCES. Done. (3) Create files required for compiling external modules: ``make prepare'' and ``make scripts''. Done. (4) Compile the module(s) by changing into the module source directory and typing ``make -C $(your_build_dir) M=$(pwd)''. Let's try. cer@Telcontar:~/tmp/kernel> cd source/net/ax25/ cer@Telcontar:~/tmp/kernel/source/net/ax25> pwd /home/cer/tmp/kernel/source/net/ax25 cer@Telcontar:~/tmp/kernel/source/net/ax25> Now, what is "my_build_dir"? "/home/cer/tmp/kernel/"? It fails: cer@Telcontar:~/tmp/kernel/source/net/ax25> make -C /home/cer/tmp/kernel/ M=$(pwd) make: Entering directory '/home_aux/cer/tmp/kernel' arch/x86/Makefile:136: CONFIG_X86_X32 enabled but no binutils support mkdir: cannot create directory ‘/home/cer/tmp/kernel/source/net/ax25/.tmp_versions’: Permission denied WARNING: Symbol version dump ./Module.symvers is missing; modules will have no dependencies and modversions. LD /home/cer/tmp/kernel/source/net/ax25/built-in.o ar: /home/cer/tmp/kernel/source/net/ax25/built-in.o: Permission denied make[3]: *** [/usr/src/linux-4.12.14-lp151.28.48/scripts/Makefile.build:479: /home/cer/tmp/kernel/source/net/ax25/built-in.o] Error 1 make[2]: *** [/usr/src/linux-4.12.14-lp151.28.48/Makefile:1569: _module_/home/cer/tmp/kernel/source/net/ax25] Error 2 make[1]: *** [Makefile:152: sub-make] Error 2 make: *** [Makefile:24: __sub-make] Error 2 make: Leaving directory '/home_aux/cer/tmp/kernel' cer@Telcontar:~/tmp/kernel/source/net/ax25> Well, obviously permission denied. It is trying to write to "/usr/src/linux", not to my build directory... So what is the incantation, following the readme.suse method one, and a user, not root, directory and permissions? STUCK. (5) Install the module(s) by typing ``make -C $(your_build_dir) M=$(pwd) modules_install''. -- Cheers / Saludos, Carlos E. R. (from 15.1 x86_64 at Telcontar)