1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: entries from November
2011</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"11.rss" type=
"application/rss+xml" />
15 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
22 <h3>Entries from November
2011.
</h3>
26 <a href=
"http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html">Hvordan enkelt laste ned filmer fra NRK
</a>
32 <p>Ofte har jeg lyst til å laste ned et innslag fra NRKs nettsted for
33 å se det senere når jeg ikke er på nett, eller for å ha det
34 tilgjengelig når jeg en gang i fremtiden ønsker å referere til
35 innslaget selv om NRK har fjernet det fra sine nettsider. I dag fant
36 jeg et lite script som fikser jobben.
</p>
38 <p>Scriptet er laget av Jan Henning Thorsen og tilgjengelig fra
39 <a href=
"http://jhthorsen.github.com/snippets/nrk-downloader/">github
</a>,
40 og gjør det veldig enkelt å laste ned. Kjør
<tt>nrk-downloader.sh
41 http://www1.nrk.no/nett-tv/klipp/
582810</tt> for å hente ned et enkelt
42 innslag eller
<tt>nrk-downloader.sh
43 http://www1.nrk.no/nett-tv/kategori/
3521</tt> for å laste ned alle
44 episodene i en serie.
</p>
46 <p>Det er ikke rakettforskning å laste ned NRK-"strømmer", og
47 tidligere gjorde jeg dette manuelt med mplayer. Scriptet til
48 Hr. Thorsen gjør det raskere og enklere for meg, men jeg vil ikke si
49 at det er en revolusjonerende løsning. Jeg mener jo fortsatt at
50 påstanden fra NRKs ansatte om at det er
51 <a href=
"http://people.skolelinux.org/pere/blog/Best___ikke_fortelle_noen_at_streaming_er_nedlasting___.html">vesensforskjellig
52 å legge tilgjengelig for nedlasting og for streaming
</a> er
59 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/video">video
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/web">web
</a>.
64 <div class=
"padding"></div>
68 <a href=
"http://people.skolelinux.org/pere/blog/St_tt_Digitalt_Personvern_.html">Støtt Digitalt Personvern!
</a>
74 <p>Datalagringsdirektivet er et grotesk angrep på rettsstaten og da
75 det ble vedtatt i Stortinget ble det klart at alle som mener det
76 liberale demokrati bør forsvares måtte stå sammen for å kjempe tilbake
77 de totalitære strømninger i landet. Jeg ble derfor glad over å se at
78 den nyopprettede foreningen Digitalt Personvern startet innsamling
79 2011-
10-
18 for å gå til sak for å få prøvd lovligheten av direktivet.
80 Direktivet er så langt prøvd for retten i flere land, blant annet
81 Tsjekkia, Romania og Tyskland, og så vidt jeg vet har det hver gang
82 blitt kjent ulovlig av høyesterett eller forfatningsdomstolen i
83 landene. Jeg håper og tror det samme vil skje her i Norge.
</p>
85 <p>Men for å finne ut av det må det finansiering til. Foreningen
86 Digitalt Personvern tror det trengs minst
2 millioner kroner for å gå
87 til sak og følge saken helt til ende, og i går fikk jeg endelig tid
88 til å overføre min skjerv. Jeg har overført
3000,- til kampanjen, og
89 oppfordrer hver og en av mine lesere å overføre minst like mye.
</p>
92 <a href=
"http://www.digitaltpersonvern.no/bidra/">donasjonssiden
</a>
93 til Digitalt Personvern for å finne kontonummer som kan brukes for å
96 <p>Jeg rekker ikke skrive så mye om hvorfor datalagringsdirektivet må
97 stoppes, så jeg nøyer meg denne gangen med en liten liste med lenker
98 til aktuelle artikler og innlegg om temaet.
</p>
102 <li><a href=
"http://www.uhuru.biz/?p=662">Skal Telenor forsvare statens
103 bevisregister i retten?
</a> - bloggen til Jon Wessel-Aas,
104 bidragsyter til foreningen Digitalt Personvern
</li>
106 <li><a href=
"http://voxpublica.no/2011/10/varslere-bør-støtte-kampanjen-digital-personvern/">Varslere
107 bør støtte kampanjen Digitalt Personvern
</a> - Vox Publica
</li>
109 <li><a href=
"http://www.digi.no/880520/georg-apenes-starter-%ABdigitalt-personvern%BB">Georg
110 Apenes starter «Digitalt personvern»
</a> - Digi.no
</li>
112 <li><a href=
"http://blogg.abrenna.com/foredrag-om-digitalt-personvern/">Foredrag
113 om Digitalt Personvern
</a> - bloggen til Anders Brenna, styremedlem
114 i foreningen Digitalt Personvern
</li>
116 <li><a href=
"http://www.nationen.no/2011/10/17/politikk/datalagringsdirektivet/eu/eu-direktiv/regjeringen/6990171/">Organisasjon
117 vil prøve datalagringsdirektivet for retten
</a> - artikkel i Nationen
</li>
119 <li><a href=
"http://people.skolelinux.org/pere/blog/Martin_Bekkelund__En_stille_b_nn_om_Datalagringsdirektivet.html">Martin
120 Bekkelund: En stille bønn om Datalagringsdirektivet
</a> - min
123 <li><a href=
"http://tversover.wordpress.com/2011/10/21/digitalt-personvern-i-praksis/">Digitalt
124 personvern i praksis
</a> - bloggen til Espen Andersen
</li>
126 <li><a href=
"http://www.dagbladet.no/2011/10/22/kultur/data_og_teknologi/datalagringsdirektivet/tekno/personvern/18692696/">Tar
127 kampen for personvernet til rettsalen
</a> - Dagbladet
</li>
135 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern
</a>.
140 <div class=
"padding"></div>
144 <a href=
"http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html">Automatically upgrading server firmware on Dell PowerEdge
</a>
150 <p>At work we have heaps of servers. I believe the total count is
151 around
1000 at the moment. To be able to get help from the vendors
152 when something go wrong, we want to keep the firmware on the servers
153 up to date. If the firmware isn't the latest and greatest, the
154 vendors typically refuse to start debugging any problems until the
155 firmware is upgraded. So before every reboot, we want to upgrade the
156 firmware, and we would really like everyone handling servers at the
157 university to do this themselves when they plan to reboot a machine.
158 For that to happen we at the unix server admin group need to provide
159 the tools to do so.
</p>
161 <p>To make firmware upgrading easier, I am working on a script to
162 fetch and install the latest firmware for the servers we got. Most of
163 our hardware are from Dell and HP, so I have focused on these servers
164 so far. This blog post is about the Dell part.
</P>
166 <p>On the Dell FTP site I was lucky enough to find
167 <a href=
"ftp://ftp.us.dell.com/catalog/Catalog.xml.gz">an XML file
</a>
168 with firmware information for all
11th generation servers, listing
169 which firmware should be used on a given model and where on the FTP
170 site I can find it. Using a simple perl XML parser I can then
171 download the shell scripts Dell provides to do firmware upgrades from
172 within Linux and reboot when all the firmware is primed and ready to
173 be activated on the first reboot.
</p>
175 <p>This is the Dell related fragment of the perl code I am working on.
176 Are there anyone working on similar tools for firmware upgrading all
177 servers at a site? Please get in touch and lets share resources.
</p>
183 use File::Temp qw(tempdir);
185 # Install needed RHEL packages if missing
187 'XML::Simple' =
> 'perl-XML-Simple',
189 for my $module (keys %rhelmodules) {
192 my $pkg = $rhelmodules{$module};
193 system("yum install -y $pkg");
198 my $errorsto = 'pere@hungry.com';
204 sub run_firmware_script {
205 my ($opts, $script) = @_;
207 print STDERR "fail: missing script name\n";
210 print STDERR "Running $script\n\n";
212 if (
0 == system("sh $script $opts")) { # FIXME correct exit code handling
213 print STDERR "success: firmware script ran succcessfully\n";
215 print STDERR "fail: firmware script returned error\n";
219 sub run_firmware_scripts {
220 my ($opts, @dirs) = @_;
221 # Run firmware packages
222 for my $dir (@dirs) {
223 print STDERR "info: Running scripts in $dir\n";
224 opendir(my $dh, $dir) or die "Unable to open directory $dir: $!";
225 while (my $s = readdir $dh) {
226 next if $s =~ m/^\.\.?/;
227 run_firmware_script($opts, "$dir/$s");
235 print STDERR "info: Downloading $url\n";
236 system("wget --quiet \"$url\"");
241 my $product = `dmidecode -s system-product-name`;
244 if ($product =~ m/PowerEdge/) {
246 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
247 system('yum install -y compat-libstdc++-
33.i686 libstdc++.i686 libxml2.i686 procmail');
249 my $tmpdir = tempdir(
253 fetch_dell_fw('catalog/Catalog.xml.gz');
254 system('gunzip Catalog.xml.gz');
255 my @paths = fetch_dell_fw_list('Catalog.xml');
256 # -q is quiet, disabling interactivity and reducing console output
259 for my $url (@paths) {
262 run_firmware_scripts($fwopts, $tmpdir);
264 print STDERR
"error: Unsupported Dell model '$product'.\n";
265 print STDERR
"error: Please report to $errorsto.\n";
269 print STDERR
"error: Unsupported Dell model '$product'.\n";
270 print STDERR
"error: Please report to $errorsto.\n";
276 my $url =
"ftp://ftp.us.dell.com/$path";
280 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
281 # firmware packages to download from Dell. Only work for Linux
282 # machines and
11th generation Dell servers.
283 sub fetch_dell_fw_list {
284 my $filename = shift;
286 my $product = `dmidecode -s system-product-name`;
288 my ($mybrand, $mymodel) = split(/\s+/, $product);
290 print STDERR
"Finding firmware bundles for $mybrand $mymodel\n";
292 my $xml = XMLin($filename);
294 for my $bundle (@{$xml-
>{SoftwareBundle}}) {
295 my $brand = $bundle-
>{TargetSystems}-
>{Brand}-
>{Display}-
>{content};
296 my $model = $bundle-
>{TargetSystems}-
>{Brand}-
>{Model}-
>{Display}-
>{content};
298 if ("ARRAY" eq ref $bundle-
>{TargetOSes}-
>{OperatingSystem}) {
299 $oscode = $bundle-
>{TargetOSes}-
>{OperatingSystem}[
0]-
>{osCode};
301 $oscode = $bundle-
>{TargetOSes}-
>{OperatingSystem}-
>{osCode};
303 if ($mybrand eq $brand && $mymodel eq $model && "LIN" eq $oscode)
305 @paths = map { $_-
>{path} } @{$bundle-
>{Contents}-
>{Package}};
308 for my $component (@{$xml-
>{SoftwareComponent}}) {
309 my $componenttype = $component-
>{ComponentType}-
>{value};
311 # Drop application packages, only firmware and BIOS
312 next if 'APAC' eq $componenttype;
314 my $cpath = $component-
>{path};
315 for my $path (@paths) {
316 if ($cpath =~ m%/$path$%) {
317 push(@paths, $cpath);
325 <p>The code is only tested on RedHat Enterprise Linux, but I suspect
326 it could work on other platforms with some tweaking. Anyone know a
327 index like Catalog.xml is available from HP for HP servers? At the
328 moment I maintain a similar list manually and it is quickly getting
335 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
340 <div class=
"padding"></div>
342 <p style=
"text-align: right;"><a href=
"11.rss"><img src=
"http://people.skolelinux.org/pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
353 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
355 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
357 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
359 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
361 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
363 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
365 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
13)
</a></li>
372 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
374 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
376 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
378 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
380 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
382 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
384 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
386 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
388 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
390 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
392 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
394 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
401 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
403 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
405 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
407 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
409 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
411 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
413 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
415 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
417 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
419 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
421 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
423 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
430 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
432 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
434 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
436 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
438 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
440 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
442 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
444 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
446 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
448 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
450 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
452 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
459 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
461 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
472 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li>
474 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
476 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
478 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
2)
</a></li>
480 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
12)
</a></li>
482 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
484 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
55)
</a></li>
486 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
109)
</a></li>
488 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
9)
</a></li>
490 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
492 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
142)
</a></li>
494 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
17)
</a></li>
496 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li>
498 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
6)
</a></li>
500 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
30)
</a></li>
502 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
16)
</a></li>
504 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
8)
</a></li>
506 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
4)
</a></li>
508 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
510 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
22)
</a></li>
512 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
188)
</a></li>
514 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
140)
</a></li>
516 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
4)
</a></li>
518 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
520 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
33)
</a></li>
522 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
48)
</a></li>
524 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li>
526 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
528 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
2)
</a></li>
530 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
4)
</a></li>
532 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
534 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
4)
</a></li>
536 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
538 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
23)
</a></li>
540 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
542 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
1)
</a></li>
544 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
35)
</a></li>
546 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
1)
</a></li>
548 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
4)
</a></li>
550 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
10)
</a></li>
552 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
6)
</a></li>
554 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
32)
</a></li>
556 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
1)
</a></li>
558 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
25)
</a></li>
564 <p style=
"text-align: right">
565 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.4
</a>