AWESOME thread Occq!!! While I’m still struggeling with the C code for my wireless card driver, my ultimate goal is exactly this, i.e. to come up with a LowFat Whonix build configuration. If you appreciate this, I would very much like to join your efforts here.
I already built the terminal-only GW, my workstation host is running icewm, 40MB Ram consumption so far, 60MB Ram with the VBox Manager running. I was reading a lot about light environments lately to prepare for this and I’m currently planning for LightDM+LXDE for the Workstation VM.
While I - in general - like Xfce4 better, my personal goal is to get just the Workstation VM running on 1GB Ram, with the GW physically isolated. I would be further into the process already but I’m stuck with C code hacking to stabilize the wireless network. That’s a must have to continue.
At https://www.whonix.org/forum/index.php/topic,56.0.html troubadour also researches lightweight options - my dream seem to come true. This is awesome - let’s work all together to get rid of the resource hog that is KDE (sorry adrelanos), make it happen with joined forces and ultimately come up with a build configuration we can ship as a “LowFat community edition”. Maybe we even manage to convince adrelanos during the process that Whonix does not urgently need a Quad-Core machine with 16GB Ram to run
you're welcome. glad you like it. thanks for accepting my request to join your efforts.
Have you build both no-terminal and no-recommended-apps GW as the same system? Or just no-terminal?
I built the GW with terminal-only only.
Have you used full xorg, xorg-server, something else?
[code]sudo apt-get install xorg icewm[/code]
That's what I used for the workstation host. No DM on the host so far, just using "startx". After thorough research, I chose icewm for its lightness while still being a very much usable environment. Other than that (and due to 1GB ram on the workstation host), I introduced zram (compressed swap in ram - nice!) to the Debian system like
[code]sudo wget https://raw.github.com/gionn/etc/master/init.d/zram -O /etc/init.d/zram
sudo chmod +x /etc/init.d/zram
sudo update-rc.d zram defaults[/code]
40MB number comes from free-m?
I use "htop" for convenience here. "free -m" shows the same number at "-/+ buffers/cache -> used"
Please post you steps for LXDE-Workstation here and I will reproduce. That way we can determine if something is wrong with my setup or if Whonix Worksation and LXDE just don't play well together.
I'm going to do this as soon as my wireless is working with the new driver. I worked through numerous C sources yesterday and finally made it to successfully compile - basically porting the driver to the new net_device_ops kernel API - without the slightest idea of C code actually. Anyway, it worked out. The card associates with the access point, everything looks awesome but (so far) it fails to get a dhcp lease - most likely an issue with the encryption used = WPA2/CCMP. This is now next to solve on my agenda as without a stable GW uplink, building the workstation VM on the workstation host is asking for troubles. The native kernel module for that particular wireless card basically is not usable.
That said, as of LXDE, I researched that Debian repos basically provide three options here:
task-lxde-desktop (my current favourite)
I still have to research them, i.e. if (one or the other of) these meta-packages pull a DM as a dependency. I plan on using LightDM (or lxdm). Seems to be the most standard-compliant DM that seeks to be the free-desktop standard DM.
Since I have started the ‘Whonix with Xfce4’ thread, I join the club.
I could not find lxdm in the Debian repositories either. I have installed LightDM but I have to start it manually so far (‘sudo /usr/sbin/lightdm’).
From the workstation (22.214.171.124), here are the memory usage (free -m) for the three desktop environments after boot. LXDE is ‘as is’ after installation, no tweaks. Xfce4 is full blown with Xfce4-goodies.
There is not much difference between KDE and Xfce4, but if you look at the processes in the latter, you’ll see many ‘k’ process still runinng. Some do not use any memory, some do, like klauncher, knotify, kde4 an others.
I think that in order to run a fair test between the challengers, one should proceed like Cerberus, that is building Whonix with the chosen environments(s). I am not there yet.
For information. At some stage during the tests, the Tor browser would no longer start. Because I am testing an apparmor profile at the same time, It took some time and a re-installation of TBB before I found the cause. I had to purge LightDM, and I am back with slim.
and there is also whonixsetup
We could consider shipping a minimal Whonix-Gateway and Whonix-Workstation by default which doesn’t come with any desktop environment or default applications installed by default.
Like said in the FAQ, inspired by ‘choose your browser’, we could implement a ‘choose your desktop’ in whonixsetup. I am happy to make the necessary changes in whonixsetup. But I won’t be involved in developing the other desktop environments. Whonixsetup could offer choices
install KDE desktop
install LXDE (or what you come up with) desktop
install standard applications only
installing nothing more, keep minimal install (but don’t complain about missing packages such as arm!).
The whonix-desktop-kde, or -lxde package could already be preinstalled in a special folder waiting to get installed.
Since whonixsetup would run in cli while it asks which desktop environment to install, the choice could only be a dialog one, cli one. None with screenshot previews. (Unless we supply yet another minimal desktop just for whonixsetup.)
(The package would just be a very few megabytes big, since it would only be a description which packages should be pulled from Debian.)
(Bonus: enabling Whonix’s apt repository would still be optional.)
Time isn’t quite ready to discuss this yet. Let’s get Whonix 8 released first. And see how this develops. Then make a blog post about this idea and see what users think about this. I could imagine that a fair share would hate, that Whonix comes unfinished and after importing you need to install (which is just one click but takes some time) and download (takes a while over Tor) lots of packages first. Using multiple Whonix-Workstations would get more inconvenient (because in a freshly imported VM, you’d need to install the desktop again first). Also I need to hear your opinion on that first, since if you don’t like this idea, we can just forget about it.
Alternatively, you could upload your own binary builds if you like. Or only maintain this as from-source-code-only version. Entirely up to you.
The bigger picture for now should be the release of Whonix 8 but thanks for the support Patrick, it means a lot.
Choose your DE idea is nice, slightly inconvenient (snapshots) but worth considering. I’m debating over to have a selection menu vs. maintaining a single light DE (Xfce or LXDE). Maybe one is more suitable then the other.
People who need both terminal GW and WS have the skills to do that themselves so as a minimal I’m thinking a combination of terminal GW and DE WS.
The problem with the default packages is that you have selected them very well. I have been looking over the content list for the last few days and it’s good, very little extra stuff.
We can remove “Package: whonix-shared-desktop” but you still need xorg for any DE and power management will get install by the user anyway.
This is interesting (and unfortunate). Have you researched the reason for this? While I haven’t had a chance yet to test it myself - reason: https://www.whonix.org/forum/index.php/topic,73.0.html - I’m a bit surprised here. That is to say, I’m occasionally using Tor Browser in a Lightdm controlled session, think Ubuntu, and it never failed on me (yet).
Something to think about: As long as Patrick sticks to KDE as the default, wouldn’t it be a good idea to built upon the full KDE workstation? I.e. building a LXDE whatever on top of the default KDE (side by side) instead of replacing lots of things? My idea here is: Patrick takes care of a solid KDE session and ships all that’s needed. From my perspective, a lightweight flavor could just replace the DE (for now), i.e. ship as a configured on-top replacement, so to speak. I mean, that way we could control what’s already there, leverage on it, through a light environment. This certainly would come with some surplus disk space requirement but I guess we’re most of all after CPU/Ram advantages. Are we? Just loud thinking here. What do you think?
I mentioned this somewhere before here but most likely you missed it (haven’t got a reaction on mentioning it): You may be interested to follow KLyDE - an effort to modularize KDE to make it less bloated by default. Actually an attempt to solve the bloat issue with clever packaging. KLyDE is driven by core KDE hacker Will Stephenson. There is, afaik, no releases for this new approach to packaging (yet) but surely an interesting topic to follow from a KDE-distro/packaging-perspective. If you’re interested, just search for “KLyDE” - Will Stephenson blogged about it several times already.
Speaking of lightweight environments, I came across dwm at http://dwm.suckless.org/. While this certainly isn’t something for Whonix or our discussion, I’d like to briefly share a statement from dwm developers with you that actually made me laugh (just for the fun of it):
Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions.
Totally agreed about running another DE side by side with KDE. I am practical. I do not like KDE, so I am now using Xfce full time with Whonix. Since the original setup is intact (including whonixsetup), I still have access to the full functionalities. They are just in different places in the environment.
As Patrick says, one should concentrate on Whonix 8, and wait and see what the future holds.
If memory resources matters, from Occq’s and my own posts here, it is obvious that when using a light DE along a heavy one, the gain is marginal. I have run some tests in my host to show the differences.
Here, LXDE does not access all Gnome’s functionalities, which might explain the difference.
We can remove "Package: whonix-shared-desktop" but you still need xorg for any DE and power management will get install by the user anyway.
Can't be removed, we run into issues. Those are documented here:
I recommend reading these files very much. Contain additional developer documentation with reasoning why which package has been chosen. Maybe in Jessie + 1 a few issues will be fixed and fewer packages need to be installed. For the most part, probably not even bugs have been reported for systems not having installed those. Pretty standard packages. But feel free to experiment without them installed. If it works, I am happy to reconsider.
How much space/system resources do we get by not installing this?
I don’t know. Probably very little. That package selection has also been chosen to keep support requests low, since time answering those can not be used for actual development. For example not having the tor-geoipdb package installed, will lead to people installing arm and wondering why Whonix is broken why arm doesn’t show country information. Not having obfsproxy installed would require providing a separate obfsproxy-enabled version for censored users, since they can’t “apt-get install obfsproxy” if they’re living in a censored area to begin with. Would make it really difficult for them to install that extra package inside Whonix.
First three are sound, if you want sound as I imagine most of us do. Light enough.
If not using KDE do we still need gtk2-engines-oxygen, gtk3-engines-oxygen?
I am not sure anymore why I added them there instead of the whonix-desktop-kde. Perhaps it was required for compatibility with GTK2 and GTK3 applications. (So they don’t look even more weird.) I’ll asked the person who most likely suggested adding them in Whonix 0.4.5 times or so.
faketime is really small and really useful. Would it make sense to be included in whonix-shared-desktop? It has it's uses in both GW and WS, right?
Faketime is currently in whonix-workstation-packages-recommended package. It's required for timeprivacy. (/usr/bin/time_privacy) (man time_privacy) I never found time to write documentation for it. Perhaps one day someone will help out with that. And it would also require more testing, not sure it would work well in context of git and file access times. Eventually also the shell would be required to run wrapped by time_privacy.
I am not aware of any useful use of faketime on Whonix-Gateway. (Unless building binary deterministically (verifiable builds) from source code.)
Adding to a desktop package wouldn’t be good, since faketime is useful independent from having a desktop installed or not.
And on top of that, adding a whonix-shared-desktop-lxde package which would be an alternative to the whonix-shared-desktop-kde package. Then either providing to binary builds, one with whonix-shared-desktop-lxde and one with whonix-shared-desktop-kde. Or only shipping a minimal (as defined above) package selection, and ask the user in whonixsetup if she wishes to install either whonix-shared-desktop-lxde or whonix-shared-desktop-kde. (We probably wouldn’t use these names in the question, rather ask for LXDE vs KDE vs Minimal and let whonixcheck care about the actual package names and installation.)
[quote=“Cerberus, post:14, topic:84”]@Patrick
I mentioned this somewhere before here but most likely you missed it (haven’t got a reaction on mentioning it): You may be interested to follow KLyDE - an effort to modularize KDE to make it less bloated by default. Actually an attempt to solve the bloat issue with clever packaging. KLyDE is driven by core KDE hacker Will Stephenson. There is, afaik, no releases for this new approach to packaging (yet) but surely an interesting topic to follow from a KDE-distro/packaging-perspective. If you’re interested, just search for “KLyDE” - Will Stephenson blogged about it several times already.[/quote]
Certainly interesting. Wasn’t aware of it. (I am however not feeling like joining the KLyDE efforts. When Debian eventually picks it up we can just switch in Whonix. However, desktop packaging efforts is too much a task for the Whonix project yet.)
[quote=“Cerberus, post:15, topic:84”]Speaking of lightweight environments, I came across dwm at http://dwm.suckless.org/. While this certainly isn’t something for Whonix or our discussion, I’d like to briefly share a statement from dwm developers with you that actually made me laugh (just for the fun of it):
LOL! Sounds like a marketing strategy to me![/quote]
The package design of Whonix (see debian/control file) makes it possible to retain all of Patrick’s work (Whonix scripts, machine configuration, even icons) even by using a different DE. I don’t like the idea of installing KDE first and then some DE on top of that. If you want KDE, use KDE. If you want to use another DE, use that. The only way to get rid of KDE is to not install it in the first place. No functionality of Whonix (package design) will be lost if KDE is not installed.
For now it’s “LXDE or Xfce?”.
It seems that LXDE installed alongside KDE works (troubadour #6) but fails when standalone (Occq #1). I could try building with just packages-kde omitted but since no-terminal-then-LXDE works for GW, the problem is probably with WS and not the build config.
If either you or troubadour find that WS no-terminal-then-LXDE doesn’t work for you either I suggest we move to the idea of using Xfce instead. There will be more than enough opportunities for troubleshooting, no need to get them all.
what do you believe is lost by not installing KDE first? With my terminal only, whonixsetup is there. Whonix is fully functional. All that I am lacking (by choice) are KDE and it’s apps.
Those are numbers for Wheezy+DE, not Whonix+DE, right?
Thanks for the links. I’ll reply when I get a chance to read them all.