Every now and again the OS may need a little TLC to get libraries in sync etc etc. so it sometimes pays to rebuild the system using "emerge -e [system|world]"
Here's a quick script I knocked up to take care of it for you :)
Every now and again the OS may need a little TLC to get libraries in sync etc etc. so it sometimes pays to rebuild the system using "emerge -e [system|world]"
Here's a quick script I knocked up to take care of it for you :)
Ever had a massive emerge package list and one package refuses to compile? This happened to me when running an "emerge -e system". You can run an "emerge -1 <package>" upgrade/downgrade, but this won't remove it from the emerge queue. Running "emerge --resume" will continue the queue starting with the package that failed.
Fear not, "vi /var/cache/edb/mtimedb". Look for the package that you have just successfully emerged and remove that section from the list.
"mergelist": [
[
"ebuild",
"/",
"www-client/chromium-29.0.1547.32",
"merge"
],
Running "emerge --resume" will now continue without trying to remerge the problematic package.
Always wanted to create your very own Gentoo disc? Well now you can. You can have anything you want e.g. a full gnome/kde... desktop environment to a full customised util/rescue disc. The script that is here, if left will create a "minimal" cd (288Mb) with the latest "stable" kernel.
The script does NOT have any intelligence and is designed to just run, do it's job and exit.
When editing the script for your needs, there are a few things to keep in mind:
1) Kernel config included is for 3.0.6. If the kernel is newer, you will be prompted for any new options.
2) Packages you wish to have MUST be defined in the CHROOT script (approx. line 75)
3) The script MUST be run as root.
Happy hacking!
I decided it was about time I actually setup some redundancy for my data. Having never done a full backup and only storing the odd chunk of data somewhere on a dvd. Losing the HDD would be a severe PITA! I purchased a Startech PEXSAT32 and popped it in. As my current HDD is SATA and is running under AHCI, the card was picked up out of the box.
Before connecting any drives I ran a quick speed check (3 times) with the onboard SATA controller and got the following results.
# hdparm -tT /dev/sda /dev/sda: Timing cached reads: 10954 MB in 2.00 seconds = 5479.70 MB/sec Timing buffered disk reads: 264 MB in 3.01 seconds = 87.64 MB/sec # hdparm -tT /dev/sda /dev/sda: Timing cached reads: 11060 MB in 2.00 seconds = 5533.11 MB/sec Timing buffered disk reads: 264 MB in 3.01 seconds = 87.71 MB/sec # hdparm -tT /dev/sda /dev/sda: Timing cached reads: 10698 MB in 2.00 seconds = 5351.98 MB/sec Timing buffered disk reads: 262 MB in 3.02 seconds = 86.71 MB/sec
Fairly poor for a SATAII controller and a SATAII drive!!!
Time to connect the drives...
At the risk of not losing any data and the fact that I just didn't have anything big enough to backup to, I just bought 2 x WD 1TB Eco. The current drive is SATAII one of these :)
Due to the way the RAID is setup, both drives will be erased upon setup. This rules out cloning the original drive and building the array. The way I had to do this was to setup the RAID1 and then clone the original drive...FAIL! The original drive was a few blocks larger than the RAID drives :(
The work around was to mirror the partitions of the original. This doesn't have to be an exact science, but does have to accommodate the data to be copied. Once the partitions have been setup (done via a Gentoo minimal CD and fdisk) it was time to start migrating data.
I created 2 directories:
/mnt/master
/mnt/raid
/boot /dev/sda1 100M
swap /dev/sda2 2Gb
/ /dev/sda3 5Gb
/dev/sda4 Extended partition
/var /dev/sda5 10Gb
/usr /dev/sda6 20Gb
/tmp /dev/sda7 10Gb
/root /dev/sda8 1Gb
/home /dev/sda9 870Gb
/dev/sda being the original drive, I mounted the in the following order.
mount /dev/sda3 /mnt/master
mount /dev/sda1 /mnt/master/boot
mount /dev/sda5 /mnt/master/var
mount /dev/sda6 /mnt/master/usr
mount /dev/sda7 /mnt/master/tmp
mount /dev/sda8 /mnt/master/root
mount /dev/sda9 /mnt/master/home
I did the same with the raid drive (/dev/sdb) as above but mounted to /mnt/raid.
I then executed the following to copy the data:
cd /mnt/master tar cf - . | (cd /mnt/raid; tar xfp -)
This took quite a few hours due to the sheer amount of data. Although the tar command would be a little slower than say dd. It does allow me to copy *ALL* files from each partition, including hidden files/folders.
Once that completed, I powered off the machine and removed the original drive. Powered back up and booted into the Gentoo CD again. I repeated the procedure and mounted the partitions (except sda1 or /boot).
Next we need to chroot into the drive's installed OS. cd into /mnt/(where you mounted the / partition).
chroot /mnt/(where you mounted the / partition) /bin/bash
env-update
source /etc/profile
This has now put us into the OS installed on the drive. As we have only copied the OS files, we need to install grub onto the MBR. If you ignored me and mounted /dev/sda1 then you will fail and grub will complain!!
type "grub" to enter the grub command line interface.
type "root (hd0,0)" This will return the format of the file system ie 0x83
type "setup (hd0)" This will return several lines of "stage" files if successful.
That's it.. job done. Exit the chroot by typing "exit" and "reboot".
Now... the pros and cons for me for this setup is although I now have the redundancy should a drive die, there is *NO* performance boost at all. Infact, upgrading to SATAIII only gained me approx 10Mb/s increase.
# hdparm -tT /dev/sda /dev/sda: Timing cached reads: 11322 MB in 2.00 seconds = 5664.09 MB/sec Timing buffered disk reads: 286 MB in 3.00 seconds = 95.26 MB/sec # hdparm -tT /dev/sda /dev/sda: Timing cached reads: 10200 MB in 2.00 seconds = 5102.15 MB/sec Timing buffered disk reads: 272 MB in 3.00 seconds = 90.56 MB/sec # hdparm -tT /dev/sda /dev/sda: Timing cached reads: 10500 MB in 2.00 seconds = 5252.27 MB/sec Timing buffered disk reads: 276 MB in 3.02 seconds = 91.33 MB/sec
I found the below info on a forum regarding slow performance, but I also read elsewhere that SATAIII is a complete waste of time with mechanical drives.
fdisk -H 224 -S 56 /dev/sdb
running fdisk with these parameters ensures that every partition you create is aligned to 4KiB boundaries. I have not run the above command, this is something for me to test when I have time.
It's soooo easy to "misplace" your removable drive, so encrypting it is a good way to help protect your data should it be lost :)
In this example, I will be using a USB2 2Gb flash drive.
The first port of call is to ensure you have the DEVICE_MAPPER driver compiled into the kernel. If you're using a binary distro, this almost certainly is already present.
Device Drivers ->
Multiple devices driver support (RAID and LVM) ->
Device mapper support
Crypt target support
Also ensure you have compiled the required encryption...
Cryptographic API -> (both options below are the default encryption used)
AES cipher algorithms (x86_64) <---- only available on 64bit OS
AES cipher algorithms (AES-NI)
Now insert your drive then run the following commands:
cryptsetup -y luksFormat /dev/sdX# (whatever your node is)
cryptsetup luksOpen /dev/sdX# <name> <-- this opens the encrypted device ready for mounting. The new device will now exist under /dev/mapper/<name>
mke2fs -j -L <name> /dev/mapper/<name> <-- formats the partition
cryptsetup luksClose /dev/mapper/<name> <-- unmounts the encryption
You can now unmount the drive and test it by re-inserting it. Your GUI should prompt you for the passphrase if all has worked ok.
If you need to mount from the cli do the following:
cryptsetup luksOpen /dev/sdX# <name>
mount /dev/mapper/<name> /mnt/usb/
To unmount from the cli do the following:
cryptsetup luksClose /dev/mapper/<name>
umount /dev/mapper/<name>
That's it... simple :)
Gnome 3 has a fixed number (well, kinda fixed, because Shell Extensions can be used to create more) of icons in the System Status Area. Some of these icons, like accessibility, may not be useful to you and just taking up space.
You can remove the icons that appear in the System Status Area by editing the file /usr/share/gnome-shell/js/ui/panel.js, and commenting out some of the items that are assigned to the STANDARD_TRAY_ICON_ORDER array.
const STANDARD_TRAY_ICON_ORDER = [/*'a11y',*/ 'display', 'keyboard', 'volume', 'bluetooth', 'network', 'battery'];
const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
// 'a11y': imports.ui.status.accessibility.ATIndicator,
This is at circa line 36
Be aware that updates to this file will most likely undo any changes you make, so if the icon pops back, just edit the file again.
To make your change "live", press ATL-F2 and type r then press enter. This will cause the GnomeShell to restart. This usually doesn't close any running apps, but save any work you have just to be safe.
Step 5 checks out the version of the extensions that works with the current version of the Gnome Shell. You can omit this command to get the latest version of the extensions, but their manifest.json files do mandate a more recent version of the Gnome Shell (like 3.0.1 or 3.0.2).
You can add the --enable-extensions="alternate-tab windowsNavigator auto-move-windows dock user-theme alternative-status-menu gajim" option to step 6 to install the additional extenions. Your luck may vary - my version of Gnome 3 would not load with all the extenions.
For a complete list of the extenions that can be supplied to the --enable-extensions option, see the configure.ac file under the ALL_EXTENSIONS= section.
To check for any errors that may have occured while loading the extenions, press ALT-F2 and run "lg" (without the quotes). This will open a JavaScript console, which has an Errors tab.
A powerful gconf style editor is available called dconf-editor. To access this, press ALT-F2 and type dconf-editor. Be careful what you tweak, you could prevent the gnome-shell from starting.
Can't wait for Gnome3 to the portage? The below steps a basically what I completed to upgrade gnome-light.
Follow these "simple" steps:
edit $HOME/.config/autostart/compiz.desktop and change "X-GNOME-Autostart-enabled=false" to "X-GNOME-Autostart-enabled=false". Compiz is NOT compatible with Gnome3 and will just prevent you from logining in.
edit /usr/portage/profiles/package.mask and comment out the following. (This will need to be done every time you sync.)
>=gnome-base/gdm-2.26
>=x11-wm/metacity-2.34
>=media-gfx/gthumb-2.13
>=gnome-extra/nautilus-open-terminal-0.19
>=x11-misc/notification-daemon-0.7
Add the following to /etc/portage/package.keywords
# Gnome3-light
app-arch/file-roller
app-editors/gedit
app-text/gnome-doc-utils
app-text/poppler
dev-lang/vala
dev-libs/atk
dev-libs/gjs
dev-libs/glib
dev-libs/gobject-introspection
dev-libs/json-glib
dev-libs/libgweather
dev-libs/libunique
dev-libs/nss
dev-python/pygobject
dev-util/gtk-doc-am
gnome-base/dconf
gnome-base/gdm
gnome-base/gnome-applets
gnome-base/gnome-control-center
gnome-base/gnome-core-libs
gnome-base/gnome-desktop
gnome-base/gnome-fallback
gnome-base/gnome-keyring
gnome-base/gnome-light
gnome-base/gnome-menus
gnome-base/gnome-panel
gnome-base/gnome-session
gnome-base/gnome-settings-daemon
gnome-base/gnome-shell
gnome-base/gsettings-desktop-schem
gnome-base/gvfs
gnome-base/libgnome-keyring
gnome-base/libgnomekbd
gnome-base/nautilus
gnome-extra/evolution-data-server
gnome-extra/gconf-editor
gnome-extra/gnome-media
gnome-extra/gnome-power-manager
gnome-extra/gnome-screensaver
gnome-extra/gnome-shell-extensions
gnome-extra/gnome-tweak-tool
gnome-extra/gnome-user-share
gnome-extra/gnome-utils
gnome-extra/nm-applet
gnome-extra/polkit-gnome
gnome-extra/zenity
media-fonts/cantarell
media-gfx/eog
media-libs/clutter
media-libs/clutter-gst
media-libs/clutter-gtk
media-libs/gst-plugins-base
media-libs/gstreamer
media-libs/libcanberra
media-libs/libexif
media-plugins/gst-plugins-*
media-plugins/gst-plugins-ogg
media-plugins/gst-plugins-pango
media-plugins/gst-plugins-theora
media-video/cheese
media-video/gnome-video-effects
net-dialup/ppp
net-im/pidgin
net-im/telepathy-logger
net-libs/libnice
net-libs/libsocialweb
net-libs/libsoup
net-libs/rest
net-libs/telepathy-glib **
net-libs/xulrunner
net-misc/networkmanager
net-print/cups
net-print/cups-pk-helper
net-voip/telepathy-haze
net-wireless/gnome-bluetooth
sys-apps/accountsservice
sys-apps/gnome-disk-utility
sys-auth/polkit
sys-fs/udev
www-client/epiphany
www-client/firefox
x11-libs/gdk-pixbuf
x11-libs/gnome-pty-helper
x11-libs/gtk+
x11-libs/libwnck
x11-libs/libxklavier
x11-libs/mx
x11-libs/pango
x11-libs/vte
x11-terms/gnome-terminal
x11-themes/gnome-icon-theme
x11-themes/gnome-icon-theme-extras
x11-themes/gnome-icon-theme-symbol
x11-themes/gnome-themes-standard
x11-wm/metacity
x11-wm/mutter
# Gnome3 Empathy
net-im/empathy
app-misc/geoclue
dev-libs/folks
media-libs/libchamplain
net-libs/telepathy-farsight
# Gnome Fallback
dev-lang/lua
app-cdr/brasero
app-crypt/seahorse
app-text/evince
dev-libs/gmime
dev-libs/libburn
dev-libs/libisofs
dev-libs/totem-pl-parser
gnome-base/gnome-core-apps
gnome-extra/gnome-user-docs
gnome-extra/yelp
gnome-extra/yelp-xsl
media-libs/quvi
media-libs/taglib
media-video/totem
net-libs/farsight2
net-libs/libsoup-gnome
execute 'echo "-introspection" >> /etc/portage/profile/use.mask
OK, now 'emerge layman'. Once complete, execute 'echo "source /var/lib/layman/make.conf" >> /etc/make.conf'. Now execute 'layman -a gnome'
This is where the fun begins.. this is NOT flawless, but hopefully the errors will be easy enough to remedy.
eg. You may need to unmerge gnome-themes-extras gnome-themes gdm gnome-panel gnome-netstatus to prevent blocked packages.
Now just run 'emerge -puvND world' if you are happy with the result, remove the 'p' switch.
To checkout the newest upstream, run layman -S.
You can always check what has been updated and when by going here
If you want to have legacy menu's then emerge gnome-fallback. This will install more apps that you probably don't use that are "standard" in gnome.
Sometimes you just don't have ssh access to your server ;) This is where web based applications come in really handy. There are a few web frontends for rtorrent. See here
I'm not going to go into detail on how to setup rtorrent or apache, only how to setup for the guis.
Emerge rtorrent with xmlrpc enabled:
net-p2p/rtorrent-0.8.6-r1 USE="ipv6 xmlrpc -daemon -debug"
Emerge the scgi apache module:
www-apache/mod_scgi-1.13
Emerge xmlrpc
dev-java/xmlrpc-2.0.1 USE="-doc -examples -source -test"
Configure:
APACHE:
Add "-D SCGI" to APACHE2_OPTS in /etc/conf.d/apache2
Add "LoadModule scgi_module modules/mod_scgi.so" to /etc/apache2/httpd.conf
Add "SCGIMount /RPC2 127.0.0.1:5000" in the <VirtualHost _default_:443> of /etc/apache2/vhosts.d/00_default_ssl_vhost.conf (you can also this for non ssl if security is not an issue)
RTORRENT:
Add "scgi_port = localhost:5000" to your ~/.rtorrent.rc file
That should be the ground work for most frontends as rtorrent only uses XMLRPC.
I've not seen this anywhere on t'interweb so this is what I have done so far which seems to work.
Only for arch x86 & amd64.
Syslinux Version 3.86 at the time of writing this.
Grub (more commonly used)
Gentoo (amd64, x86) You'll need the iso files.
Stage3 and portage archives are optional, but handy to get the install started.
Create a folder somewhere. This will be the root of the DVD
ISOLINUX METHOD
|
GRUB METHOD
|
put the stage and portage archives in the root folder of your CD. (optional)
touch livecd in the root folder of your CD. (needed for livecd to load)
mount each iso and copy the gentoo.efimg and image.squashfs files into the root folder of your CD. (contains the gentoo environment)
I found here that you will need to rename the files. I just replaced "gentoo" & "image" with the arch.
ie x86.efimg & amd64.efimg etc
copy the gentoo.efimg.mountPoint directory into the root folder of your CD. (contains the kernel and initrd)
Again replacing the "gentoo" with the arch.
cd outside of the root of your CD folder and run
ISOLINUX METHODmkisofs -N -V gentoo -b boot/isolinux/isolinux.bin -d -iso-level 4 -no-emul-boot -boot-load-size 4 -boot-info-table -o Gentoo.iso gentoo-multiboot (the isolinux.bin is in your CD root. the gentoo-multiboot is the name of the root of your CD |
GRUB METHODmkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o Gentoo.iso gentoo-multiboot |
I have qemu installed but any VM will do.
qemu -k en-gb -enable-kvm -m 1024 -cpu qemu32 -cdrom gentoo.iso -boot d
note: Add "-vnc :0.0" if qemu is on a remote server. The just vnc to it :)
Jack (not to be confused with the jackd audio daemon) is a cdripper for Linux written in python. You can download via your package manager or from the homesite. I have found on Gentoo and Fedora that jack depends on python-2.4 which is a pain when just about everything else builds against python-2.5 or higher which causes problems. I was forever getting:
$ jack Traceback (most recent call last): File "/usr/bin/jack", line 42, in <module> import jack_argv File "/usr/lib/python2.6/site-packages/jack_argv.py", line 22, in <module> import jack_utils File "/usr/lib/python2.6/site-packages/jack_utils.py", line 26, in <module> import jack_functions File "/usr/lib/python2.6/site-packages/jack_functions.py", line 222 def starts_with(str, with): ^ SyntaxError: invalid syntax
I had my fill of fixing this every time I needed to rip a cd, so I fixed it. All you need to do after it has been installed is run this script jack python-2.6 patch
If you look at the script, you'll see that it just changes any definitions from starts_with to startswith.
Another common problem is a gcc memory leak. To fix this add MALLOC_CHECK_=1 at the start of your command. I have added this as an alias in my .bash_profile eg.
alias jackflac='MALLOC_CHECK_=1 jack --device=/dev/sr0 --append-year=yes --dir-template "%a/%l" -C -Q -R --rename-fmt "%n - %a - %l - %t" --workdir /home/cdstealer/Desktop/ -E flac'
alias jackmp3='MALLOC_CHECK_=1 jack --device=/dev/sr0 --append-year=yes --dir-template "%a/%l" -C -Q -R --rename-fmt "%n - %a - %l - %t" --workdir /home/cdstealer/Desktop/ -E lame --vbr=no -b 320 -e 2 --write-id3v2=yes'
Please make sure that jack and its dependencies have been built against python-2.6+.
dev-python/id3-py
dev-python/cddb-py
dev-python/pyogg
media-libs/id3lib
dev-python/pyid3lib
dev-python/pyvorbis
media-sound/jack
I edited the files below to add high quality and forced stereo. Just add "-q0 -ms" to the end of the 4 line in each file. eg:
'cmd': "lame --preset cbr %r --strictly-enforce-ISO %i %o -q0 -ms",
'vbr-cmd': "lame -V %q --vbr-new --nohist --strictly-enforce-ISO %i %o -q0 -ms",
'otf-cmd': "lame --preset cbr %r --strictly-enforce-ISO - %o -q0 -ms",
'vbr-otf-cmd': "lame -V %q --vbr-new --nohist --strictly-enforce-ISO - %o -q0 -ms",
/usr/lib/python2.6/site-packages/jack_helpers.py
/usr/lib/python2.6/site-packages/jack_main_loop.py
/usr/lib/python2.6/site-packages/jack_plugin_lame.py