You are not logged in.
Pages: 1
Notes from going thru this guide following the Chimeara stable upgrade.
1. I did a fresh install of Devuan Chimeara using the netinstall.iso install image, downloaded and burned to USB thrumb drive. This is a non-UEFI install and I installed the default Xfce4 desktop. That all went well.
2. I did an update and then full-upgrade to the installation
3. To upgrade to the latest Linux Kernel, 5.16-rc3 I followed the guide steps above, and needed to do two changes.
a. I copied the previous /boot/config-5.10.0-9-amd64 to my ...src/linux/.config and changed the CONFIG_SYSTEM_TRUSTED_KEYS="debian/certs/debian-uefi-certs.pem" to CONFIG_SYSTEM_TRUSTED_KEYS="" else the make fails
b. I needed to install apt install dwarves as a prerequisit tool to get the make to finish successfully. make failed with 'pahole not installed...'
4. after a successfull make , make modules_prepare, sudo make modules_install install then I rebooted.
Whoot, whoot! system booted into Linux kernel 5.16-rc3
bkm@optiplex:/boot$ uname -a
Linux optiplex 5.16.0-rc3+ #2 SMP PREEMPT Thu Dec 2 07:11:06 PST 2021 x86_64 GNU/Linux
>They need testing: https://github.com/pyavitz/binary/releases/tag/images
Here to tell you that the rpi-devuan-chimaera-5.10.76-ext4-2021-10-30.img.xz image worked a charm for my RaspberryPi Zero W stick.
I had to comment out the hardline lan eth0 stanza before the wifi worked, but after that it worked well.
Kudos to you on providing those images. Thanks much.
I tried your rpi-img-builder, but it refused to install/run on my Ceres box, said 'The OS you are running is not supported'.
I'll install Chimaera and try again. I'd be good to generate my own images with your tool to help.
Also, now that I think about it...
You can select make localyesconfig or make localmodconfig options which will only compile or make available those options/modules that exist for your 'running' machine state.
In other words you will create a .config that has only those modules that are currently running on your machine.
This make a great, small, compact kernel based on what is running currently...
But, beware!
This might not include certain firmware that is needed for your machine to run successfully.
Often the network card, or other hardware driver is not included, and after you compile/reboot.... your machine might complain or not start successully until you modify the .config to include that firmware or driver.
When you use the MAKE script, it will accept a number of options... if you type make -? or make -help then you can use the TAB completion to list a number of different configurations for the make script.
e.g.
Configuration targets:
config - Update current config utilising a line-oriented program
nconfig - Update current config utilising a ncurses menu based program
menuconfig - Update current config utilising a menu based program
xconfig - Update current config utilising a QT based front-end
gconfig - Update current config utilising a GTK based front-end
oldconfig - Update current config utilising a provided .config as base
localmodconfig - Update current config disabling modules not loaded
localyesconfig - Update current config converting local mods to core
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
defconfig - New config with default from ARCH supplied defconfig
savedefconfig - Save current config as ./defconfig (minimal config)
allnoconfig - New config where all options are answered with no
allyesconfig - New config where all options are accepted with yes
allmodconfig - New config selecting modules when possible
alldefconfig - New config with all symbols set to default
randconfig - New config with random answer to all options
listnewconfig - List new options
olddefconfig - Same as silentoldconfig but sets new symbols to their default value
kvmconfig - Enable additional options for guest kernel support
tinyconfig - Configure the tiniest possible kernel
Each of these options provide a differnt set of interfaces to select options for a user to explore.
I typically use make menuconfig
so that have an easily traversed menu based interface to select, or not, certain Kernel Modules or characteristics.
I select these with some thought and then compile the kernel.
Sometimes it works out great.
Other times it does not. In those cases I revert back to the previous kernel option and try again.....
In any case, I explore the differing options using the menuconfig, or the nconfig, or other HELP > TAB options....
Or I create my own CUSTOM .config by selecting various options using 'make menuconfig' and then editing the .config file with a text editor.
All of those options (146?) are available for you to explore. They are various ways to present the various kernel interfaces and/or options... or to limit them.
Part of the fun/beauty is exploring the kernel options given what your hardware/software supports when defining what to use for the kernel, and what to leave out.... that is what 'Tuning' the kernel is all about.
To be safe, select the make menuconfig or the make nconfig options.... and then just exit out to format the .config for that next command = make
I play Kerbel Space Program with several patches, especially Real Solar System and KOS (Kerbal operating system - scripted take offs, etc..). It's on Chimaera with latest kernel, mono (I know, I know...) so that I can play the Linux version. It's awesome creating rockets to blast off, orbit earth, goto the moon, descend, etc... ).
I also play OpenRTT (rail road Tycoon) several Linux flavor real-time-simulations, etc..
I downloaded the netinstall.iso. Burned to CD, after boot selected standard 'Install'..
That all worked well until it asked for a Mirror... when I selected deb.devuan.org it cycled with error...'Could not access deb.devuan.org'.
I selected ok, and the installer dropped me to the full Advanced list of actions.
I reselected the Partitions menu which gave me the prompt for a mirror again, and I selected deb.devuan.org. I selected to 'ignore' or worry about it later. Installer then proceeded to the 'add applications' screen where I selected to add SSH server and then 'Run It' init env.
All that worked fine. The system finished installing. I rebooted fine. RunIt is now my init system. And I can update/full-upgrade. Just smarvillous.
I'm using an old Intell Core2 Duo Dell Optiplex 755... so not a new machine, and no uefi. I'll try the net installer on some of my other machines, give you an update if they have issues.
All,
I ran thru this install/config steps by installing Devuan 4.0 Chimera Alpha Desktop as the base and then installing/compiling the v5.12-rc7 linux kernel.
it worked well, yielding the below changes... please note.
> That's right, you need to install both flex and bison. But..., what's the problem installing flex?
Aitor is right, need to install FLEX to make this work. What issue/error did you see when installing flex? Or any of the other essentials software?
Also, the essential install list needs to include 'bc'
so updated full list of needed essential installs is -
sudo apt-get install libncurses5-dev build-essential libssl-dev libelf-dev git bison flex bc
Just so everyone is aware, the size of the linux branch is ~8 GiB
If you can't install or get the menuconfig to work then the nconfig works just fine and yields the same result.
And, after you get this working, then do try the "debhelper" deb-pkg that Untimely suggested. It's very good that it will generate a .deb (and associated) files that you can transport/copy to another Devuan install, and just install the .deb package to update everything.
Also, yes, I'll come back on occasion when major Devuan builds change or major Linux kernel changes to run thru this with latest builds to validate it still works, or if not post updates.
cheers all.
If you're refering to the production Devuan kernel, and how it's built, etc.. then I recommend going to relay chat https://webchat.freenode.net/ #Devuan and ask the question there... maybe from FSmithRed.
You are so right... I missed that library. I'm glad you mentioned it, and I've updated the list of prerequisites. I've not tried the "debhelper" deb-pkg route yet, so I'm off to give that a shot to see what it gains.
great catch.
I've updated the list of resources/prerequisits to install for make: removed module-init-tools, and added bison and flex
Nice, clean upgrade instructions, easy to accomplish and worked well. I've replaced udev with eudev on my ascii test machine. Also works well with the latest Linux kernel (currently v4.13-rc5). No freezes, no drops. Works well with USB plug-in/remove, successfully identifies components. Good stuff!
Devuan RC currently ships with standard kernel. On my machine...
Linux devuan 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
Kernel as provided by Debian. So no "custom" patches that Devuan put in (that I'm aware of...).
Getting and compiling a Linux kernel need not be hard or complex. The following tutorial is long, but not difficult.
This tutorial assumes -
you've installed ( or upgraded to) Devuan
you are compiling the kernel on the machine that will use it. Other configurations are do-able, just not part of this tutorial
you are compiling a i386 or amd64 system. This tutorial doesn't cover other architectures
you have a userid installed on the base system, if you are going to use userid 'root' then skip the 'setup sudo' part
you know the 'root' password
you are ok with Grub. Grub update is completed by the 'make' install step. Tutorial uses only this method
Task list -
Setup 'sudo' so that you can do Administrator level work without being 'root'
Edit apt-get 'sources.list' to comment out the CD-ROM source, or move the cdrom definition to last place in the file
Use apt-get to install the several prerequisites
Make a directory for the linux source files
Use git to clone the Linux branch (all of it to start)... roughly 3 GiB
Check latest linux version
Checkout the latest linux kernel version, or checkout a specific version
Get a copy of the kernel config from your current linux install
Use 'menuconfig' to prep the kernel .config file
Use 'make' to compile the kernel
Use 'make' to compile the various modules and to install everything
Reboot to effect the new kernel
Check to see that your machine is using the new kernel version
Party !!
Detail task steps -
Switch User (su) to root to add your userid to "Sudo" so that you can do Admin work without being administrator
Open a Terminal window/screen, at prompt type
su
and press [return/enter key], then provide root password (default devuan pswd is: toor )
Add 'Sudo' to your userid
visudo then press [return/enter key]
Add your userid (ie: bkm ) just below the entry for "root" with same priviliges, etc..
root ALL=(ALL:ALL) ALL
bkm ALL=(ALL:ALL) ALL
Press control-x to exit, select "Y" when prompted to save changes, then [enter] key to exit
Back at root prompt, type in
exit
Edit sources.list to comment out the CD-ROM source, or move the line with the definition to last place in file
sudo nano /etc/apt/sources.list
Comment out (place a hash symbol # at beginning of line) "deb cdrom:..."
Ctrl-x, then "Y" to save and exit
Use apt-get to install these several software prerequisites.
sudo apt-get update
sudo apt-get install libncurses5-dev build-essential libssl-dev libelf-dev git bison flex
press "Y" at "Do you want to continue? [Y/n]" prompt
Make a directory for the linux source files, then change directory into your new source directory.
mkdir ~/src
cd ~/src
Use git to clone the Linux branch (all of it to start)
git clone [url]https://github.com/torvalds/linux.git[/url]
Check latest linux version, cd into the git linux directory
cd ~/src/linux
git tag -l (that"s a lower case "L" for list )
check the listing for the highest level version, remember that 4.11 comes after 4.1
Checkout the latest linux kernel version after reviewing the git tag list (above)
git checkout -f
OR if you want/know of a specific version then ie:
git checkout v4.11-rc6
Get a copy of the kernel config... from our current linux install
cp /boot/conf* ~/src/linux/.config (note the .config )
Validate the .config using 'menuconfig'
make menuconfig
once in 'menuconfig' (text based kernel config menu) then use arrow-keys to select <Exit>
select <Yes> at the save .config prompt
Kick off the kernel compile, use 6 job threads to do the compile
make -j 6
Kick off the kernel modules prepare, then install the modules
make modules_prepare
sudo make modules_install install
After the kernel is compiled, the large number of modules is installed, and GRUB2 is updated, then reboot to move to the new kernel version.
sudo reboot
Once the reboot occurs you"ll see the GRUB boot menu,
and if you do nothing (for the 5 seconds you"re allowed) then the latest kernel version will be used to boot the machine
Check to see if the machine is using the new kernel version
Open a terminal session and at terminal prompt, type in:
uname -a
you should see something like...
"Linux devuan 4.11.0-rc4+ #1 SMP Thu Mar 30.. x86_64 GNU/Linux"
Party!!
-------------------------------------------------------------------------------------------------------
Appendix
- maintaining your Linux kernel, housekeeping...
- assumes you start where you left off (above)
To go a bit further, you might want to customize your kernel a bit, or to recycle and compile another kernel. Some helpful tips.
Gather information about your machine, helps when you want to customize your kernel. The more you know about your machine, the finer you can tune it.
List and capture machine specific information. Run these commands, then store/print the output for reference.
List PCI information
lspci > myMachine.info
or lspci -v for more verbose information
List USB information
lsusb >> myMachine.info
or lsusb -v for more info
List CPU info
lscpu >> myMachine.info
List Modules loaded and running on your machine
lsmod >> myMachine.info
Print out the myMachine.info file and keep for reference.
Clean or Reset your kernel build environment.
Change to your Linux source directory, list the current kernel version, then save your existing .config file to something meaningful... ie: your kernel version!
cd ~/src/linux
uname -a
cp .config .config-4.11-rc2
Clean up and reset the kernel build env.
make clean
make mrproper
Copy your saved kernel configuration to .config
cd ~/src/linux
cp .config-4.11-rc2 .config
OR list the current /boot/configs and copy the one you want. ie: latest
cd ~/src/linux
ls -la /boot/config
cp /boot/config-4.11-rc2 .config
Get the latest kernel updates from https://github.com/torvalds/linux.git
git fetch
List out the kernel versions.... remember 4.1, 4.11, 4.2...
git tag -l
Checkout the latest kernel version (reset the master head) or select a specific kernel version (see way above).
git checkout -f
Use steps below to 'make menuconfig' to validate the kernel .config
Now compile your kernel... and reboot.
Tune your kernel .config
Should you want to start tuning your kernel (shrinking it to the smallest possible size with the most flexibility) then you must modify the kernel .config file by using the 'make menuconfig' utility. This is where your earlier inventory of machine hardware (above) is important.
Ensure you've saved off your build environment .config or use the instructions above to make a copy of the exiting /boot/configxxx file.
An easy way to make a succinct kernel configuration, based on the currently loaded kernel modules
cd ~/src/linux
make localmodconfig
check the listed modules against your machine inventory list (the myMachine.info listing).
Firmware for USB, networking cards, or wifi things are where most problems occur.
If it's ok with you then update your '/etc/apt/sources.list' for contrib and non-free repositories.
firmware-linux-free comes with the standard install, but other firmware installs such as: firmware-linux, firmware-linux-nonfree, firmware-iwlwifi, firmware-ralink, firmware-realtek, and many others, are in the 'contrib' and 'non-free' repositories.
The 'make' wizard will ask you to decide on the fate of new/updated modules.
For new or modified modules you'll be prompted to decide [Yes/No/Module/New] (New): or similar. Typically the default is in parens ie: '(New)', and that is probably a safe selection...select [enter] key for default option.
ie:
* PCI GPIO expanders
*
AMD 8111 GPIO driver (GPIO_AMD8111) [N/m/y/?] n
BT8XX GPIO abuser (GPIO_BT8XX) [N/m/y/?] (NEW)
go thru each module prompt till you're at the shell prompt again, then use 'make menuconfig' (way above) to validate it.
Explore your kernel .config file
Explore your kernel .config via the 'make menuconfig' menu.
Remember to refer to your previously printed/saved machine info and make intelligent decisions on what to remove, what to leave in.
cd ~/src/linux
cp .config-4.11-rc2 .config
make menuconfig
<exit> and <save> to effect the .config changes, then use 'make' to compile your new, tuned kernel. Reboot to enact it.
If your new, tuned, kernel doesn't boot
Don't panic... we have the previous kernel remember?
Reboot again, and at the restart Kernel Selection menu then use the arrow keys to select the 'Advanced...' options and select a previous kernel.
Pages: 1