BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

CPU-Temperaturen und Batterieinformationen auslesen

Mt Hilfe von hwstat lassen sich auf FreeBSD die Prozessortemperaturen sowie auf einem Laptop Informationen zur Batterie auslesen. Im FreeBSD -Portbaum findet man hwstat unter sysutils/hwstat:

# cd /usr/ports/sysutils/hwstat && make install clean

Damit die CPU-Temperaturen ausgelesen werden können, muss zuerst das coretemp-Kernelmodul geladen werden:

# kldload coretemp

Um das coretemp-Kernelmodul automatsch beim Systemstart zu laden, kann folgender Eintrag in der /boot/loader.conf gemacht werden:

coretemp_load="YES"

Nun können die gewünschten Infromationen herausgelesen werden:

#  hwstat 
                                        Current                         Unit
[Coretemp]
        CPU0:                           36.1                            C
        CPU1:                           38.1                            C

[ACPI Thermal]
        tz0:                            48.1                            C

[ACPI Thermal]
        tz1:                            43.1                            C

[ACPI Battery (sysctl)]
        Cap remain:                     100                             percents
        Time remain:                    On AC
        State:                          0
        Units:                          1

[battery0]
        Present:                        yes
        Design capacity:                56160                           mWh
        Last full capacity:             56160                           mWh
        Technology:                     secondary (rechargeable)
        Design voltage                  10800                           mV
        Capacity (warn):                2808                            mWh
        Capacity (low):                 200                             mWh
        Low/warn granularity:           1                               mWh
        Warn/full granularity:          1                               mWh
        Model number:                   42T3596
        Serial number:                   2208
        Type:                           LION
        OEM info:                       SONY
        State:                          high
        Remaining capacity:             100                             percent
        Remaining time:                 unknown
        Present rate:                   0                               mW
        Voltage:                        12397                           mV

Mehr Informationen zu hwstat findet man in der Manpage hwstat(1).

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

ZFS-Installation mit Hilfe von mfsBSD

Mit Hilfe von mfsBSD lässt sich einfach ein FreeBSD 8.0 installieren, welches nur ZFS als Dateisystem verwendet. Dazu findet man auf der mfsBSD-Webseite eine "8.0-RELEASE-amd64 special edition"-ISO-Datei. Startet man einen Rechner von dieser CD, so wird allen Netzwerkschnittstellen, falls ein DHCP-Server verfügbar ist, automatisch eine IP-Adresse zugewiesen. Nun kann man sich mit dem Rechner via SSH verbinden:

# ssh root@<rechner>
Password: mfsroot
Last login: Mon Nov 30 20:23:43 2009
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
        The Regents of the University of California.  All rights reserved.

FreeBSD 8.0-RELEASE (GENERIC) #1: Thu Nov 26 00:38:45 CET 2009

Welcome to mfsBSD SE, the memory based FreeBSD distribution.
This is a special version intended for full-ZFS install of FreeBSD

To make a full-ZFS FreeBSD install from this ISO:

1. Mount the CD device 
( e.g. mount_cd9660 /dev/acd0 /cdrom )
2. Run "zfsinstall" with path to to the distribution bzip file and your drive
( e.g. zfsinstall -d /dev/ad0 -t /cdrom/8.0-amd64.tbz )

Run zfsinstall without any option for the options list.
I recommend creating a GPT swap partition (e.g. -s 2G for a 2GB swap).

Feel free to email me with any bug requests or feature suggestions.
Martin Matuska <mm(AT)FreeBSD.org>
http://mfsbsd.vx.sk/

Zuerst muss nun das CD-ROM-Laufwerk gemountet werden:

mfsbsd# mount_cd9660 /dev/acd0 /cdrom
mfsbsd# mount
/dev/md0 on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/md1 on /tmp (ufs, local, soft-updates)
/dev/md2.uzip on /usr (ufs, local, read-only)
/dev/md3 on /var (ufs, local)
/dev/md4 on /usr/local (ufs, local, soft-updates)
/dev/acd0 on /cdrom (cd9660, local, read-only)

Nun kann mit Hilfe von zfsinstall die Installation vorgenommen werden. Mit der -d Option wird die Festplatte festgelegt, auf welcher die Installation vorgenommen werden soll. Alle auf der Festplatte liegenden Dateien werden dabei gelöscht. Mit der -p Option kann falls gewünscht einen alternativen Pool-Namen gesetzt werden. Mit der -s Option kann die Grösse des Swap-Bereiches festgelegt werden:

mfsbsd# zfsinstall -d /dev/da0 -t /cdrom/8.0-amd64.tbz -p rpool -s 2G
Creating GUID partitions on /dev/da0 ... done
Configuring ZFS bootcode on /dev/da0 ... done
=>      34  16777149  da0  GPT  (8.0G)
        34       128    1  freebsd-boot  (64K)
       162   4194304    2  freebsd-swap  (2.0G)
   4194466  12582717    3  freebsd-zfs  (6.0G)

Creating ZFS pool rpool on /dev/da0p3 ... done
Creating rpool partitions: root usr var tmp ... done
Setting bootfs for rpool to rpool/root ... done
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool        218K  5.88G    18K  none
rpool/root    18K  5.88G    18K  legacy
rpool/tmp     18K  5.88G    18K  legacy
rpool/usr     18K  5.88G    18K  legacy
rpool/var     18K  5.88G    18K  legacy
Mounting rpool on /mnt ... done
Extracting FreeBSD distribution ... done
Writing /boot/loader.conf... done
Writing /etc/fstab... done
Copying /boot/zfs/zpool.cache ... done

Installation complete.
The system will boot from ZFS with clean install on next reboot

You may type "chroot /mnt" and make any adjustments you need.
For example, change the root password or edit/create /etc/rc.conf for
for system services. 

Die Partitionstabelle, der ZFS-Pool und die ZFS-Dateisysteme wurden dabei automatisch angelegt:

mfsbsd# gpart show
=>      34  16777149  da0  GPT  (8.0G)
        34       128    1  freebsd-boot  (64K)
       162   4194304    2  freebsd-swap  (2.0G)
   4194466  12582717    3  freebsd-zfs  (6.0G)
mfsbsd# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rpool  5.97G   317M  5.66G     5%  ONLINE  -
mfsbsd# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool        317M  5.57G    18K  none
rpool/root  66.4M  5.57G  66.4M  legacy
rpool/tmp     18K  5.57G    18K  legacy
rpool/usr    250M  5.57G   250M  legacy
rpool/var    121K  5.57G   121K  legacy

Nun kann mit Hilfe von chroot in das neu installierte System gewechselt werden. Dort kann das System konfiguriert, Benutzer angelegt, sowie das root-Passwort gesetzt werden:

mfsbsd# chroot /mnt

Startet man den Rechner, nachdem man die CD-ROM entfernt hat, neu wird das installierte System, welches nur ZFS als Dateisystem verwendet, gestartet.

Related Entries:
ZFS-Statistiken anzeigen
FreeBSD nur auf ZFS installieren
Alle Änderungen eines ZFS-Pools anzeigen
Automatisch ZFS Snapshots erstellen
ZFS Dateisystemoptionen verwenden
Comments (18)  Permalink

portmaster das Löschen von altem Quellcode untersagen

Aktualisiert man Ports mit Hilfe von portmaster, so wird nach jedem aktualisierten Port nach nicht mehr gebrauchtem Quellcode in /usr/ports/distfile gesucht:

# portmaster libtool
[...]
install-info --quiet /usr/local/info/libtool.info /usr/local/info/dir
===>   Registering installation for libtool-2.2.6b

===>  Cleaning for libtool-2.2.6b

===>>> Delete libtool-2.2.6a.tar.gz? [n] 
===>>> Upgrade of libtool-2.2.6a_1 to libtool-2.2.6b complete

Das kann, vor allem wenn man viele Ports aktualisiert, zu häufigen Verzögerungen führen. Mit der -D Option von portmaster kann dieser Schritt übersprungen werden:

# portmaster -D libtool
[...]
install-info --quiet /usr/local/info/libtool.info /usr/local/info/dir
===>   Registering installation for libtool-2.2.6b

===>  Cleaning for libtool-2.2.6b

===>>> Upgrade of libtool-2.2.6a_1 to libtool-2.2.6b complete

Nicht mehr gebrauchter Quellcode aller Ports kann danach nachträglich mit portmaster gelöscht werden. Mehr Informationen zu portmaster findet man in der Manpage portmaster(8).

 Permalink

Identische Dateien löschen

Mit Hilfe von samesame lassen sich Identische Dateien aufspüren und falls gewünscht löschen. Im FreeBSD-Portbaum findet man samesame unter sysutils/samesame:

# cd /usr/ports/sysutils/samesame && make install clean

Im folgenden Beispiel werden mit Hilfe von samefile identische Dateien gefunden und mit Hilfe von samerm jeweils alle bis auf eine der identischen Dateien gelöscht.

# ls -l
total 6
-rw-r--r--  1 test  wheel  8 28 Nov 13:59 a
-rw-r--r--  1 test  wheel  4 28 Nov 13:56 b
-rw-r--r--  1 test  wheel  4 28 Nov 13:58 c
# find . | samefile -i | samerm
# ls -l
total 4
-rw-r--r--  1 test  wheel  8 28 Nov 13:59 a
-rw-r--r--  1 test  wheel  4 28 Nov 13:56 b

Möchte man die Dateien nicht löschen, so kann mit sameln die Datei durch einen Hardlink ersetzt werden:

# ls -1i
16468 a
16469 b
16453 c
# find . | samefile -i | sameln
# ls -1i
16468 a
16469 b
16469 c

Mehr Informationen zu samesame findet man in den Manpages samesame(1), samefile(1) und sameln(1).

Comments (2)  Permalink

Programm mit which finden

Möchte man herausfinden ob sich ein Programm innerhalb eines Verzeichnisses befindet, welches in der PATH-Variable gesetzt ist, so kann dazu which verwendet werden:

# which portmaster
/usr/local/sbin/portmaster
# which bla
bla: Command not found.

Benutzer der csh verwenden dabei eine in der Shell eingebaute Version von which. Verwendet man eine Shell welche which nicht beinhaltet, so kann /usr/bin/which aus dem FreeBSD-Basissystem verwendet werden:

# which which
which: shell built-in command.
# /usr/bin/which which
/usr/bin/which

Zusätzlich zu which kann in der csh auch where verwendet werden, welches den Shell-eigenen und den im Dateisystem gefundenen Befehl anzeigt, sollten beide vorhanden sein:

# where which
which is a shell built-in
/usr/bin/which

Mehr Informationen zu which and where findet man in der Manpage tcsh(1) und which(1).

Related Entries:
Piepston der tcsh deaktivieren
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
 Permalink

Dateien mit Hilfe eines Editors umbenennen

Mit Hilfe von vils lassen sich Dateien mit Hilfe des Standard-Editors umbenennen. Im FreeBSD-Portbaum findet man vils unter sysutils/vils:

# cd /usr/ports/sysutils/vils && make install clean

Zuerst wechselt man in das Verzeichnis in dem die Dateien umbenannt werden sollen und ruft danach vils auf:

# ls -1
datei1
datei2
datei3
datei4
# vils

Im Standard-Editor wird danach eine Liste mit allen Dateien des Verzeichnis angezeigt:

0001 datei1
0002 datei2
0003 datei3
0004 datei4

Diese Liste kann nun angepasst werden:

0001 datei1neu
0002 datei2
0003 datei3test
0004 datei 

Speichert man das Ergebnis und verlässt den Editor werden die Dateien umbenannt:

# ls -1
datei
datei1neu
datei2
datei3test

Mehr Informationen zu vils findet man im Skript selber:

# more /usr/local/bin/vils
 Permalink

Webseiten auf Änderungen überprüfen

Mit Hilfe von netstiff lassen sich Webseiten auf Änderungen überprüfen. Im FreeBSD-Portbaum findet man netstiff unter www/netstiff:

# cd /usr/ports/www/netstiff && make install clean

Mit der -c Option kann nun das Konfigurationsmenu aufgerufen werden. Darin werden die URLs hinzugefügt, welche überwacht werden sollen:

# netstiff -c
netstiff 20080331      Copyright (C) 2004, 2007-2008  Stephan Beyer, GNU GPL

This is the netstiff 20080331 interactive configuration tool.
netstiff uses a simple human-readable configuration file
        /home/beat/.netstiff/config
but you can always use this tool by executing `/usr/local/bin/netstiff -c' 
on the command line.


  [0]   Global settings
  [1]   http://www.chruetertee.ch/test.html settings
  [2]   http://tinderbox.chruetertee.ch/tb/ settings
  [3]   http://zaphod.chruetertee.ch/tb/ settings
  [n]   Add new URI

  [f]   Finished (exit & save)
  [x]   Exit without saving

  Your choice [n/f/x/0/1/2/3]: 1

  [u]   URI: http://www.chruetertee.ch/test.html
  [m]   Test method: diff
  [x]   Menu title: [not set]

  [a]   User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.1.4) Gecko/20091028 Firefox/3.5.4 [global]
  [r]   Referer: [not set]
  [l]   Accept-Language: [not set]
  [b]   Range: [not set]
  [t]   Timeout: [not set]
  [p]   Proxy: [not set]
  [ ]   Command HTML dumper: [only available w/ html]
  [s]   Start regexp: /header/
  [e]   End regexp: [not set]

  [d]   Delete URI from list.
  [f]   I have finished.

  Your choice [u/m/x/a/r/l/b/t/p/s/e/d/f]:

Beim ersten Aufruf von netstiff werden die angegebenen URLs heruntergeladen. Beim nächsten Aufruf von netstiff wird die aktuelle Version der Webseite mit der gespeicherten Version verglichen. Werden Unterschiede festgestellt so werden diese angezeigt:

# netstiff 
diff --netstiff diff http://www.chruetertee.ch/test.html
--- http://www.chruetertee.ch/test.html
+++ http://www.chruetertee.ch/test.html
@@ -1,3 +1,8 @@
-<html><head><title>Object moved</title></head><body>
-<h2>Object moved to <a href="http://www.chruetertee.ch">here</a>.</h2>
-</body></html>
+<html>
+<head>
+<meta http-equiv="refresh" content="0; url=http://www.chruetertee.ch">
+</head>
+<body>
+
+</body>
+</html>

Mehr Informationen zu netstiff findet man in der Manpage netstiff(1).

 Permalink
1-7/7