Gentoo Archives: gentoo-soc

From: Pavel Nichoski <nichoski@×××××.com>
To: gentoo-soc@l.g.o
Subject: [gentoo-soc] GSoC 2013: Manage kernel configurations
Date: Mon, 29 Apr 2013 00:36:54
Message-Id: CAPQF+7xRcPwg9MSoQcNMqcKeJM740+nSQ79KhdZCmm+JnaLRNw@mail.gmail.com
1 Hello, I'm Pavel Nichoski, or CrowX- at Freenode. I'm a third year
2 undergraduate student majoring in Computer Science & Engineering at UIST
3 Macedonia. I've been using Gentoo since 2008, constantly on my desktop and
4 about a couple of years on my server, and I'm most happy with it. Of
5 programming languages, I've used C, C++, Python, Java, C#, PHP and Perl,
6 but mostly for trivial tasks, such as small programs or scripts for
7 university projects, or minor code tweaking of software I'm using. I'm also
8 very comfortable with writing bash scripts.
9
10 I plan to apply for a few projects, but first on my list is "Manage kernel
11 configurations" as I already have a generally well defined idea for it.
12 However, I'm always open to improvements, so criticism and suggestions are
13 most welcome. I also like the idea behind this project, and if accepted,
14 I'd be most happy to maintain and improve the application in the years to
15 come.
16
17 The main goals of the application would be:
18 1. To ease and automate the kernel upgrading process to a level the user
19 desires. This would mean using the old kernel configuration to generate a
20 new one while automatically taking care of changes between versions, such
21 as renamed drivers, etc. If the version of the application is older than
22 the version of the kernel, the app should be able to automatically (or by
23 request) sync the needed data from a server.
24 2. To provide default kernel configuration optimized to some extent
25 according to the system's profile, architecture, hardware info, file
26 systems available, etc. Now of course this wouldn't be able to provide an
27 out of the box perfectly optimized configuration in every case, but it
28 would greatly lower the amount of manual configuration by the user. The
29 more common the case is, the less manual configuration will be needed.
30 3. Automatically setting packages to be installed if a driver/module
31 absolutely needs it, usually for firmware. This could be done by creating a
32 separate set of packages, and perhaps adding that set in the world_sets
33 file, so the packages would get pulled when the user upgrades @world.
34
35 The application would be consisted on one command-line tool accepting
36 various arguments. For example:
37 -l --list Lists installed kernel versions
38 -u --upgrade Changes the symlink to the newest kernel version, or if
39 argument number is given, it sets it to the version under that number from
40 the list, then generates a .config file using the values of the previously
41 used kernel version.
42 -b --build Builds the kernel with the current config
43 -i --install Moves the kernel image to /boot and includes it in the
44 bootloader's configuration.
45 -m --menu Opens the menuconfig
46 -n --new Creates a new .config file with values based on the system's
47 profile, hardware info etc.
48 -d --default Reverts the config file to the default, i.e. as shipped by the
49 package manager
50
51 So on a new install the user would most likely use "programName -nimb" if
52 he wants the program to generate configuration, then open the menuconfig
53 for the user to do manual changes or reviews, then automatically builds the
54 kernel, moves it to /boot and edits grub.conf (in the case of grub legacy)
55 or whatever loader it's there.
56 And from then on, the user would simply need to execute "programName -ubi"
57 for upgrades. Also if --upgrade is combined with --list, it lists the
58 available versions and then promts for argument on which version to upgrade
59 to.
60
61 I'd prefer to use Python for this app, but could consider other options too
62 if the mentor suggests a better alternative.
63
64 Thanks for your attention, and as I said earlier, I'm open to critics and
65 suggestions.
66
67
68 Best regards,

Replies

Subject Author
Re: [gentoo-soc] GSoC 2013: Manage kernel configurations Ralph Sennhauser <sera@g.o>