Blog Code Forum

ArchLive

From Wiki.cyring.fr

Revision as of 09:30, 12 November 2012 by Cyril (Talk | contribs)
Jump to: navigation, search

Contents

Working directory

# pacman -S archiso
# mkdir live
# chdir live
# cp -rv /usr/share/archiso/configs/releng/ .
# cd releng
# nano packages.both
# nano pacman.conf
# mkdir -p root-image/etc/modules-load.d
# nano root-image/etc/modules-load.d/archiso.conf
# mkdir -p root-image/etc/X11/xorg.conf.d
# nano root-image/etc/X11/xorg.conf.d/10-evdev.conf
# mkdir -p root-image/etc/skel
# cp -v /etc/skel/.xinitrc root-image/etc/skel/
# nano root-image/etc/skel/.xinitrc
# cp -v /etc/skel/.bash_profile root-image/etc/skel/
# nano root-image/etc/skel/.bash_profile
# cp -v /etc/vconsole.conf root-image/etc/

Settings

packages.both
arch-install-scripts
base-devel
bash
blender
chromium
cuda
dhclient
dialog
dnsmasq
dnsutils
dosfstools
hdparm
mtools
nfs-utils
nmap
ntfs-3g
ntp
nvidia
openssh
pptpclient
rp-pppoe
rsync
sudo
wget
xf86-video-vesa
xfce4
pacman.conf
SigLevel = Never
#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[core]
#SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
#SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[community]
#SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
archiso.conf
  • modules required by CoreMod
msr
dmi-sysfs
10-evdev.conf
  • remark : AZERTY keyboard
Section "InputClass"
        Identifier      "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
        Option          "xkb_layout" "fr"
        Option          "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Section "InputClass"
        Identifier      "evdev pointer catchall"
        MatchIsPointer  "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
        Option          "SampleRate" "500"
EndSection

Section "InputClass"
        Identifier      "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
EndSection

Section "InputClass"
        Identifier      "evdev tablet catchall"
        MatchIsTablet   "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
EndSection

Section "InputClass"
        Identifier      "evdev touchscreen catchall"
        MatchIsTouchscreen      "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
EndSection
.xinitrc
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

# exec gnome-session
# exec startkde
exec startxfce4
# ...or the Window Manager of your choice

Xfce

# mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
# nano xfce4-desktop.xml
<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-desktop" version="1.0">
  <property name="backdrop" type="empty">
    <property name="screen0" type="empty">
      <property name="monitor0" type="empty">
        <property name="image-path" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
        <property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
        <property name="last-single-image" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
      </property>
    </property>
  </property>
  <property name="desktop-icons" type="empty">
    <property name="icon-size" type="uint" value="32"/>
    <property name="file-icons" type="empty">
      <property name="show-home" type="bool" value="false"/>
      <property name="show-filesystem" type="bool" value="false"/>
      <property name="show-trash" type="bool" value="false"/>
    </property>
  </property>
</channel>
# nano xfce4-panel.xml
<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-panel" version="1.0">
  <property name="configver" type="int" value="2"/>
  <property name="panels" type="array">
    <value type="int" value="1"/>
    <property name="panel-1" type="empty">
      <property name="position" type="string" value="p=6;x=17;y=72"/>
      <property name="mode" type="uint" value="1"/>
      <property name="size" type="uint" value="48"/>
      <property name="background-style" type="uint" value="1"/>
      <property name="plugin-ids" type="array">
        <value type="int" value="4"/>
        <value type="int" value="3"/>
        <value type="int" value="2"/>
        <value type="int" value="6"/>
        <value type="int" value="1"/>
      </property>
      <property name="position-locked" type="bool" value="true"/>
      <property name="length" type="uint" value="100"/>
      <property name="background-color" type="array">
        <value type="uint" value="23589"/>
        <value type="uint" value="37012"/>
        <value type="uint" value="45286"/>
        <value type="uint" value="65535"/>
      </property>
    </property>
  </property>
  <property name="plugins" type="empty">
    <property name="plugin-1" type="string" value="tasklist">
      <property name="show-labels" type="bool" value="false"/>
      <property name="show-handle" type="bool" value="false"/>
    </property>
    <property name="plugin-3" type="string" value="systray"/>
    <property name="plugin-4" type="string" value="clock">
      <property name="mode" type="uint" value="4"/>
      <property name="show-frame" type="bool" value="false"/>
    </property>
    <property name="plugin-6" type="string" value="launcher">
      <property name="items" type="array">
        <value type="string" value="13526260781.desktop"/>
      </property>
      <property name="arrow-position" type="uint" value="0"/>
      <property name="move-first" type="bool" value="false"/>
      <property name="show-label" type="bool" value="false"/>
      <property name="disable-tooltips" type="bool" value="false"/>
    </property>
    <property name="plugin-2" type="string" value="launcher">
      <property name="items" type="array">
        <value type="string" value="13526269274.desktop"/>
      </property>
    </property>
  </property>
</channel>
Terminal
# mkdir -p root-image/root/.config/Terminal
# nano terminalrc
[Configuration]
FontName=Monospace 10
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBordersDefault=TRUE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscDefaultGeometry=80x24
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMouseAutohide=FALSE
MiscToolbarsDefault=FALSE
MiscConfirmClose=TRUE
MiscCycleTabs=TRUE
MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE

Application shortcuts

Chrome
  • allow chrome to start as root using argument --user-data-dir
# mkdir -p root-image/root/.config/xfce4/panel/launcher-6
# nano 13526260781.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Chrome
Comment=
Exec=chromium --user-data-dir=/tmp/
Icon=chromium
Path=
Terminal=false
StartupNotify=false
Blender
# mkdir -p root-image/root/.config/xfce4/panel/launcher-2<br />
# nano 13526269274.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Blender
Comment=
Exec=blender
Icon=blender
Path=
Terminal=false
StartupNotify=false

Boot Loader

SysLinux

  • blacklist the nouveau module in favor of nvidia
# nano syslinux/archiso_sys.cfg
LABEL arch
TEXT HELP
Boot the Arch Linux live medium. It allows you to install Arch Linux or
perform system maintenance.
ENDTEXT
MENU LABEL Boot Arch Linux
LINUX boot/%ARCH%/vmlinuz
INITRD boot/%ARCH%/archiso.img
APPEND quiet modprobe.blacklist=nouveau archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%

Build

# ./build.sh -v build single

Test

  • update the host syslinux configuration for a live test on computer
# cp -v out/archlinux-*-x86_64.iso /boot/
# ln -fs /boot/archlinux-*-x86_64.iso /boot/archlive.iso
# nano /boot/syslinux/syslinux.cfg
LABEL cdrom
        MENU LABEL ^CD-ROM
        LINUX memdisk
        INITRD archlive.iso
        APPEND iso raw
  1. reboot the computer and press [C] to boot the live CD
  2. open a Terminal and change to the directory CoreMod
  3. build & run CoreMod
# mkdir ~/CoreMod
# wget http://code.cyring.fr/FTS/Source/C/CoreMod/Nightly_Build/2012-0.1.4/Makefile -O ~/CoreMod/Makefile
# wget http://code.cyring.fr/FTS/Source/C/CoreMod/Nightly_Build/2012-0.1.4/coremod.c -O ~/CoreMod/coremod.c
# wget http://code.cyring.fr/FTS/Source/C/CoreMod/Nightly_Build/2012-0.1.4/coremod.h -O ~/CoreMod/coremod.h
# cd ~/CoreMod
# make
# bin/coremod