1 <?xml version=
"1.0" encoding=
"ISO-8859-1"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/'
>
4 <title>Petter Reinholdtsen - Entries from November
2011</title>
5 <description>Entries from November
2011</description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
10 <title>Hvordan enkelt laste ned filmer fra NRK
</title>
11 <link>http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html
</guid>
13 <pubDate>Sat,
5 Nov
2011 15:
20:
00 +
0100</pubDate>
14 <description><p
>Ofte har jeg lyst til å laste ned et innslag fra NRKs nettsted for
15 å se det senere når jeg ikke er på nett, eller for å ha det
16 tilgjengelig når jeg en gang i fremtiden ønsker å referere til
17 innslaget selv om NRK har fjernet det fra sine nettsider. I dag fant
18 jeg et lite script som fikser jobben.
</p
>
20 <p
>Scriptet er laget av Jan Henning Thorsen og tilgjengelig fra
21 <a href=
"http://jhthorsen.github.com/snippets/nrk-downloader/
">github
</a
>,
22 og gjør det veldig enkelt å laste ned. Kjør
<tt
>nrk-downloader.sh
23 http://www1.nrk.no/nett-tv/klipp/
582810</tt
> for å hente ned et enkelt
24 innslag eller
<tt
>nrk-downloader.sh
25 http://www1.nrk.no/nett-tv/kategori/
3521</tt
> for å laste ned alle
26 episodene i en serie.
</p
>
28 <p
>Det er ikke rakettforskning å laste ned NRK-
"strømmer
", og
29 tidligere gjorde jeg dette manuelt med mplayer. Scriptet til
30 Hr. Thorsen gjør det raskere og enklere for meg, men jeg vil ikke si
31 at det er en revolusjonerende løsning. Jeg mener jo fortsatt at
32 påstanden fra NRKs ansatte om at det er
33 <a href=
"http://people.skolelinux.org/pere/blog/Best___ikke_fortelle_noen_at_streaming_er_nedlasting___.html
">vesensforskjellig
34 å legge tilgjengelig for nedlasting og for streaming
</a
> er
40 <title>Støtt Digitalt Personvern!
</title>
41 <link>http://people.skolelinux.org/pere/blog/St_tt_Digitalt_Personvern_.html
</link>
42 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/St_tt_Digitalt_Personvern_.html
</guid>
43 <pubDate>Wed,
9 Nov
2011 22:
10:
00 +
0100</pubDate>
44 <description><p
>Datalagringsdirektivet er et grotesk angrep på rettsstaten og da
45 det ble vedtatt i Stortinget ble det klart at alle som mener det
46 liberale demokrati bør forsvares måtte stå sammen for å kjempe tilbake
47 de totalitære strømninger i landet. Jeg ble derfor glad over å se at
48 den nyopprettede foreningen Digitalt Personvern startet innsamling
49 2011-
10-
18 for å gå til sak for å få prøvd lovligheten av direktivet.
50 Direktivet er så langt prøvd for retten i flere land, blant annet
51 Tsjekkia, Romania og Tyskland, og så vidt jeg vet har det hver gang
52 blitt kjent ulovlig av høyesterett eller forfatningsdomstolen i
53 landene. Jeg håper og tror det samme vil skje her i Norge.
</p
>
55 <p
>Men for å finne ut av det må det finansiering til. Foreningen
56 Digitalt Personvern tror det trengs minst
2 millioner kroner for å gå
57 til sak og følge saken helt til ende, og i går fikk jeg endelig tid
58 til å overføre min skjerv. Jeg har overført
3000,- til kampanjen, og
59 oppfordrer hver og en av mine lesere å overføre minst like mye.
</p
>
62 <a href=
"http://www.digitaltpersonvern.no/bidra/
">donasjonssiden
</a
>
63 til Digitalt Personvern for å finne kontonummer som kan brukes for å
66 <p
>Jeg rekker ikke skrive så mye om hvorfor datalagringsdirektivet må
67 stoppes, så jeg nøyer meg denne gangen med en liten liste med lenker
68 til aktuelle artikler og innlegg om temaet.
</p
>
72 <li
><a href=
"http://www.uhuru.biz/?p=
662">Skal Telenor forsvare statens
73 bevisregister i retten?
</a
> - bloggen til Jon Wessel-Aas,
74 bidragsyter til foreningen Digitalt Personvern
</li
>
76 <li
><a href=
"http://voxpublica.no/
2011/
10/varslere-bør-støtte-kampanjen-digital-personvern/
">Varslere
77 bør støtte kampanjen Digitalt Personvern
</a
> - Vox Publica
</li
>
79 <li
><a href=
"http://www.digi.no/
880520/georg-apenes-starter-%ABdigitalt-personvern%BB
">Georg
80 Apenes starter «Digitalt personvern»
</a
> - Digi.no
</li
>
82 <li
><a href=
"http://blogg.abrenna.com/foredrag-om-digitalt-personvern/
">Foredrag
83 om Digitalt Personvern
</a
> - bloggen til Anders Brenna, styremedlem
84 i foreningen Digitalt Personvern
</li
>
86 <li
><a href=
"http://www.nationen.no/
2011/
10/
17/politikk/datalagringsdirektivet/eu/eu-direktiv/regjeringen/
6990171/
">Organisasjon
87 vil prøve datalagringsdirektivet for retten
</a
> - artikkel i Nationen
</li
>
89 <li
><a href=
"http://people.skolelinux.org/pere/blog/Martin_Bekkelund__En_stille_b_nn_om_Datalagringsdirektivet.html
">Martin
90 Bekkelund: En stille bønn om Datalagringsdirektivet
</a
> - min
93 <li
><a href=
"http://tversover.wordpress.com/
2011/
10/
21/digitalt-personvern-i-praksis/
">Digitalt
94 personvern i praksis
</a
> - bloggen til Espen Andersen
</li
>
96 <li
><a href=
"http://www.dagbladet.no/
2011/
10/
22/kultur/data_og_teknologi/datalagringsdirektivet/tekno/personvern/
18692696/
">Tar
97 kampen for personvernet til rettsalen
</a
> - Dagbladet
</li
>
104 <title>Automatically upgrading server firmware on Dell PowerEdge
</title>
105 <link>http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html
</link>
106 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html
</guid>
107 <pubDate>Mon,
21 Nov
2011 12:
00:
00 +
0100</pubDate>
108 <description><p
>At work we have heaps of servers. I believe the total count is
109 around
1000 at the moment. To be able to get help from the vendors
110 when something go wrong, we want to keep the firmware on the servers
111 up to date. If the firmware isn
't the latest and greatest, the
112 vendors typically refuse to start debugging any problems until the
113 firmware is upgraded. So before every reboot, we want to upgrade the
114 firmware, and we would really like everyone handling servers at the
115 university to do this themselves when they plan to reboot a machine.
116 For that to happen we at the unix server admin group need to provide
117 the tools to do so.
</p
>
119 <p
>To make firmware upgrading easier, I am working on a script to
120 fetch and install the latest firmware for the servers we got. Most of
121 our hardware are from Dell and HP, so I have focused on these servers
122 so far. This blog post is about the Dell part.
</P
>
124 <p
>On the Dell FTP site I was lucky enough to find
125 <a href=
"ftp://ftp.us.dell.com/catalog/Catalog.xml.gz
">an XML file
</a
>
126 with firmware information for all
11th generation servers, listing
127 which firmware should be used on a given model and where on the FTP
128 site I can find it. Using a simple perl XML parser I can then
129 download the shell scripts Dell provides to do firmware upgrades from
130 within Linux and reboot when all the firmware is primed and ready to
131 be activated on the first reboot.
</p
>
133 <p
>This is the Dell related fragment of the perl code I am working on.
134 Are there anyone working on similar tools for firmware upgrading all
135 servers at a site? Please get in touch and lets share resources.
</p
>
141 use File::Temp qw(tempdir);
143 # Install needed RHEL packages if missing
145 'XML::Simple
' =
> 'perl-XML-Simple
',
147 for my $module (keys %rhelmodules) {
148 eval
"use $module;
";
150 my $pkg = $rhelmodules{$module};
151 system(
"yum install -y $pkg
");
152 eval
"use $module;
";
156 my $errorsto =
'pere@hungry.com
';
162 sub run_firmware_script {
163 my ($opts, $script) = @_;
165 print STDERR
"fail: missing script name\n
";
168 print STDERR
"Running $script\n\n
";
170 if (
0 == system(
"sh $script $opts
")) { # FIXME correct exit code handling
171 print STDERR
"success: firmware script ran succcessfully\n
";
173 print STDERR
"fail: firmware script returned error\n
";
177 sub run_firmware_scripts {
178 my ($opts, @dirs) = @_;
179 # Run firmware packages
180 for my $dir (@dirs) {
181 print STDERR
"info: Running scripts in $dir\n
";
182 opendir(my $dh, $dir) or die
"Unable to open directory $dir: $!
";
183 while (my $s = readdir $dh) {
184 next if $s =~ m/^\.\.?/;
185 run_firmware_script($opts,
"$dir/$s
");
193 print STDERR
"info: Downloading $url\n
";
194 system(
"wget --quiet \
"$url\
"");
199 my $product = `dmidecode -s system-product-name`;
202 if ($product =~ m/PowerEdge/) {
204 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
205 system(
'yum install -y compat-libstdc++-
33.i686 libstdc++.i686 libxml2.i686 procmail
');
207 my $tmpdir = tempdir(
211 fetch_dell_fw(
'catalog/Catalog.xml.gz
');
212 system(
'gunzip Catalog.xml.gz
');
213 my @paths = fetch_dell_fw_list(
'Catalog.xml
');
214 # -q is quiet, disabling interactivity and reducing console output
215 my $fwopts =
"-q
";
217 for my $url (@paths) {
220 run_firmware_scripts($fwopts, $tmpdir);
222 print STDERR
"error: Unsupported Dell model
'$product
'.\n
";
223 print STDERR
"error: Please report to $errorsto.\n
";
227 print STDERR
"error: Unsupported Dell model
'$product
'.\n
";
228 print STDERR
"error: Please report to $errorsto.\n
";
234 my $url =
"ftp://ftp.us.dell.com/$path
";
238 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
239 # firmware packages to download from Dell. Only work for Linux
240 # machines and
11th generation Dell servers.
241 sub fetch_dell_fw_list {
242 my $filename = shift;
244 my $product = `dmidecode -s system-product-name`;
246 my ($mybrand, $mymodel) = split(/\s+/, $product);
248 print STDERR
"Finding firmware bundles for $mybrand $mymodel\n
";
250 my $xml = XMLin($filename);
252 for my $bundle (@{$xml-
>{SoftwareBundle}}) {
253 my $brand = $bundle-
>{TargetSystems}-
>{Brand}-
>{Display}-
>{content};
254 my $model = $bundle-
>{TargetSystems}-
>{Brand}-
>{Model}-
>{Display}-
>{content};
256 if (
"ARRAY
" eq ref $bundle-
>{TargetOSes}-
>{OperatingSystem}) {
257 $oscode = $bundle-
>{TargetOSes}-
>{OperatingSystem}[
0]-
>{osCode};
259 $oscode = $bundle-
>{TargetOSes}-
>{OperatingSystem}-
>{osCode};
261 if ($mybrand eq $brand
&& $mymodel eq $model
&& "LIN
" eq $oscode)
263 @paths = map { $_-
>{path} } @{$bundle-
>{Contents}-
>{Package}};
266 for my $component (@{$xml-
>{SoftwareComponent}}) {
267 my $componenttype = $component-
>{ComponentType}-
>{value};
269 # Drop application packages, only firmware and BIOS
270 next if
'APAC
' eq $componenttype;
272 my $cpath = $component-
>{path};
273 for my $path (@paths) {
274 if ($cpath =~ m%/$path$%) {
275 push(@paths, $cpath);
283 <p
>The code is only tested on RedHat Enterprise Linux, but I suspect
284 it could work on other platforms with some tweaking. Anyone know a
285 index like Catalog.xml is available from HP for HP servers? At the
286 moment I maintain a similar list manually and it is quickly getting