Android Oreo tested on a Dell netbook with Atom Z520

1024px-dell_inspiron_mini_9I found my old Dell Inspiron mini PC on a drawer. Since my motto is “don’t throw it if it’s not completely broken” I decided to play with it before discarding it.

Imagine it: it’s 2009, and there are new guys in the market in addition to the laptops and desktops, the so called netbooks. They are very small, cheap and portable, and they come with Windows or Linux. Laptops were very bulky at this moment (even the MacBooks!) so I jumped onto it right after having one in my hands.

Let’s not discuss the specs. My handy is now around 4 times more powerful, in terms of processor, RAM and storage. But since it does run an Atom chip, why don’t to try android oreo on it? I found this post of makeuseof that seem to have a short howto. I download the ISO for i386, burn it on a pen drive and go ahead with it.

Does it work? Yes it does. It takes time, much more than what takes on a handy, to reach the first configuration screen. You are asked to provide an username, password, date, and so on, but no email address. Everything is very slow. If you persist, you can end up on a working desktop. Unfortunately I can’t activate the WiFi due to firmware issues, but I can plug it via cable, and open a website. If I enter a valid gmail address,  I get access to the google store. But I’m not satisfied.

Do I keep it this way? No I will not. At least in my case, the whole experience is kind of cumbersome. I remember having a smooth answer from the keyboard and mouse that I seem to have lost on this configuration. What to do with it then? I could PXE boot something onto it. The bios option is there. I do register the mac on my foreman but none of the systems I have there for deployment seem to like the architecture.

We could install Windows XP on it, but I got it with Ubuntu, a very colorful version of it called Ubuntu Network Remix. a distribution based on Maverick (no, not the Apple OS!) with a desktop called Unity.  I download UNR from here, burn on a new pendrive and install it just to find out that still I  can’t activate the WiFi due to firmware issues. But at least it’s much smoother than Oreo, if I type it responds automatically and so on.

Let’s fix the WiFi. The Broadcomm Wireless Drivers have an history of issues with Ubuntu, and proprietary hardware was always a pain in the a**  on Linux. Look at Nvidia, for example. Firs I hit this link on the Ubuntu community, and I download and install  b43-fwcutter and firmware-b43legacy via dpkg -i package.deb. They are not for maverick, but I was hoping they work. But they don’t. I do a more detailed search. I do:

lspci -vnn | grep Network

And a better googling (dell bcm4312 lp phy wifi firmware mavericks) to find this Ubuntu forum post. I download the requested package, untar, move the content to /lib/firmware/ and reboot, and my wifi works 🙂

What’s next? Maybe install chrome on it, so I can visit modern websites. Maybe not. But at least, I can type and I have WiFi.

Advertisements

Headaches

– On your file it says you’re a Martian. Is it true?
– Of course it is. Why should I lie about such a thing?
– I don’t know. You tell me. –
– You tell me, you are the Doctor! –

The Martian is dressed with a red T-Shirt saying “Earth Sucks” and chino black trousers. His hair, although cut very short, seems to be blonde. His eyes are clear green. The doctor is sitting on his desk playing with a thin transparent touch screen that is showing quickly flashing graphs and letters.

– Right. Let’s have a look to that later. So you came hear complaining about unexplained headaches…
– That is correct, sir. I’ve never had headaches before coming to Earth. A quick search told me that it’s one of the most common Earth diseases…
– So is the cold, and nobody goes to the Doctor because of it. So why are you here?
– Someone up there told me you could help.
– Someone? You’re the first Martian that comes to my office! I have records, boy.

The doctor flashes the touch screen to the Martian. A long list of names is rolling down quickly. The Martian doesn’t pay attention to it. He seems to be more interested on the window.

– We like our privacy. You know we have the right to hide our origin…
– You have the right, that’s right. So why didn’t you hide it?
– I don’t know…I think the whole Act 15 is stupid, if you ask me.

The doctor looks at the Martian. So Martian and democrat. What a strange combination. He stands to get to the closest cabinet. From there he draws an stethoscope and a tensiometer, all old school.

– Please let me have a look, boy.

The doctor starts pumping the tensiometer. The Martian stares at the wall around. The doctor has a very old style office, and the only modern device seems to be the touch screen.

– Is it bad?
– Boy, you are in perfect health. I think you are one of the most healthy patients I had in the last month. Let me check your inners…

The doctor gets the touch screen, and he looks at the Martian through it. Images of his organs appear on the transparent display. He pinches, zooms here and there, and seems to stop on the picture of the brain. The Martian, that sees also the pictures, changes his face when he stops.

– Can you help me? Do I have a tumor?
– No man, it’s much easier than that! You show signals, but I know the reason.
– What reason?
– Your frontal lobe is under pressure. It’s a well known symptom the rock-climbers experience after coming back from high mountains. That’s giving you headaches.
– The pressure?
– The pressure. Boy, just come back to whatever idyllic Martian village you come from: this weather will end up damaging your brain, I’m afraid. It’s too much pressure for your little head!

The doctor taps the Martian on the forehead. The Martian, annoyed, stand up.

– Thank you doctor. At least I know now Earth is not for me.
– I hope I could say more about, but…as I said, you’re my first Martian.
– Your first Martian, I know. Have a good day, doctor.
– Have a good day you too. And have a safe trip home!

Slurm 18.08 with QOS mariadb problems on CentOS 7

I already told you how to install Slurm on CentOS 7 so I’m not going to repeat it for a  modern slurm package. I’m going to comment on the new issues I had using the procedure. Problem one: making rpms.

rpmbuild -ta slurm-15.08.9.tar.bz2

This I solved by using a variation of this solution. I just did it as root.

yum install 'perl(ExtUtils::Embed)' 'rubygem(minitest)'

You could also configure, make and make install the source code. Once done, I run a script to copy my slurm rpms or my slurm source code to the local machine, clean up the previous installation (deleting the packages and the munge and slurm users and folders) and install everything (munge + slurm).

Problem two: the slurm database configuration. I’m going to start from a working installation of 18.08. That means you can submit jobs, they run and so on. First time I did a modification on it I screwed up the queuing system: all jobs got stucked with status CG. The solution to stucked CG jobs is scancel followed by.

scontrol update NodeName=$node State=down Reason=hung_proc
scontrol update NodeName=$node State=resume

Of course it is normal to commit mistakes if you play around. On Sloppy Linux Notes they have a very short guide about how to install a mariadb with slurm. Please try out the above method before go on reading, this one is a sad story 😦

So I had it already installed on my database client, but I was not using it. Instead of removing all the little bits and pieces, I tried to reset the mariadb root password. Note that you may want to recover the mysqld password instead. In any case, this is the error:

root@node ~ ## > mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' 
(using password: YES)

Even with the right password. Depending on your install, skip grant tables may work, in my case, I get this

MariaDB [(none)]> ALTER USER 'root'@'localhost' 
IDENTIFIED BY 'NewPass';
ERROR 1064 (42000): You have an error in your SQL syntax; 
check the manual that corresponds to your MariaDB server version 
for the right syntax to use near 'USER 'root'@'localhost' 
IDENTIFIED BY 'NewPass'

I check the documentation as suggested, but I still don’t manage. Even some potsts about the problem on a mac. I tried generating a password hash…but without luck. This works:

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' 
= PASSWORD('NewPass'); 
Query OK, 0 rows affected (0.00 sec)

But I can’t login as root after flushing the privileges and removing the skip-grant-tables from my.cnf. On the DigitalOcean they advice to alter user also, but instead of modifying the my.cnf, they suggest to start the database skipping the grant tables

mysqld_safe --skip-grant-tables --skip-networking &

My mariadb version is 5.5

root@node > rpm -qa | grep mariadb 
mariadb-server-5.5.60-1.el7_5.x86_64
mariadb-devel-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-5.5.60-1.el7_5.x86_64

So:

MariaDB[(none)]> SET PASSWORD FOR 'root'@'localhost' 
= PASSWORD('NewPass');

Now I can log in as root with my new password. What’s next? Yes, we need to setup the mariadb slurm user and the slurm tables.

MariaDB [(none)]> CREATE USER 'slurm'@'node' 
IDENTIFIED BY 'SLURMPW';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> create database slurm_acct_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON 
`slurm_acct_db`.* TO 'slurm'@'node' with grant option;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all on slurm_acct_db.* TO 'slurm'@'node'
-> identified by 'SLURMPW' with grant option;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Here you have how to add a user to mariadb with all privileges in case you need more info. And the documentation on GRANT. And all in a nutshell with a script. If you have problems with the database (for example it is corrupted)

root@node> more /var/log/mariadb/mariadb.log
XXX [ERROR] Native table 'performance_schema'.'rwlock_instances' 
has the wrong structure

you may want to DROP it or rebuild all the databases.

root@node ~ ## > mysql_upgrade -uroot -p --force
Enter password: 
MySQL upgrade detected
Phase 1/4: Fixing views from mysql
Phase 2/4: Fixing table and database names
Phase 3/4: Checking and upgrading tables
Processing databases

After such an action, it may be interesting to get a list of mariadb users and rights.  Or show your grants:

MariaDB [(none)]> show grants

But let’s don’t look back and go ahead. If after all this troubles you didn’t give up and you have a mariadb running, it’s time to configure the slurmdbd daemon. Our slurmdbd.conf should look like this:

/etc/slurm/slurmdbd.conf
AuthType=auth/munge
DbdAddr=localhost
DbdHost=localhost
SlurmUser=slurm
DebugLevel=4
LogFile=/var/log/slurm/slurmdbd.log
PidFile=/var/run/slurmdbd.pid
StorageType=accounting_storage/mysql
StorageHost=node
StoragePass=SLURMPW
StorageUser=slurm
StorageLoc=slurm_acct_db

We can start the daemon now…and here comes the section for slurmdbd errors.

Error:  ConditionPathExists=/etc/slurm/slurmdbd.conf was not met
Solution: Check the file exist, has that name and it is accessible by ‘node’.

Error:  This host (‘node’) is not a valid controller
Solution: Check your slurm.conf, where it is defined the controller in ‘ControlMachine’

Error:  mysql_real_connect failed: 2003 Can’t connect to MySQL server on ‘node’
Solution: Check StorageHost=XXX on your slurmdbd.conf. and AccountingStorageHost=XXX on slurm.conf Change it for an IP instead of name.

Error:  mysql_real_connect failed: 1045 Access denied for user ‘slurm’@’node’ (using password: YES)
Solution: Check that you can log in as ‘slurm’ with SLURMPW on myslq. If not, you need to create a user that is able to do that.

Error:  Couldn’t load specified plugin name for accounting_storage/mysql: Plugin init() callback failed
Solution: Check that your mariadb is up and running. Check that you have the accounting_storage.so. You may need to recompile everything…

Error:  It looks like the storage has gone away trying to reconnect
Solution: Check that the cluster is seen by the accounting system. If not, you need to add it using an account manager command

root@node ## > sacctmgr add cluster MYCLUSTER

We need to set QOS also. To do so, maybe we need to use the consumable resource allocation plugin select/cons_res, that is to say, tell slurm to manage the CPUs, RAM, and GPUs.  Add to your slurm.conf something like this:

SelectType=select/cons_res
SelectTypeParameters=CR_Core_Memory

There are a lot of examples of the slurm documentation on cons_res. Be aware that there is cons_res bug on hardened systems if you compile slurm hardening. Let’s define some QOS as in the documentation.

sacctmgr add qos zebra

And see how they look like:

sacctmgr show qos format=name,priority
Name       Priority 
---------- ---------- 
normal     0 
zebra      0 
elephant   0

Now everything should be fine. We check:

root@node ## > slurmctld -Dvvv

If you need it, here you have the QOS at the biocluster. And the official documentation on slurm accounting. And I’m pretty tired of fixing things, distributing files, and look at logs. I hope you didn’t need it at all. At the end, just to finish this collection of troubles, the slurm problems page from SCSC. Happy slurming…

Setting up AI.cnf

Ummm…let’s see…interactivity: yes. Of course I want interactivity. Yeah I understand some people don’t really want to interact, but I enjoy a good conversation. Empathy: no. I never liked the typical guy or girl who’s in your face as soon as he has a chance saying “I understand you. I totally am.” It’s a cheap trick, the empathy. If human can’t master ir, how can my new toy? Next one: log and memory. I’m going to set it to readable, rewritable and forgettable. If I could simply do that… but I can’t, it’s there. I will never manage to rewrite it, and I would love to be able to forget it just with one swipe. What else… backup… what about it? Can we turn back the clock? Can we experience the same sensation, over and over, just by resetting the backup? No, of course we can’t, so I’m going to say no, no backup. It will be more realistic, so to say. How about this one: Imagination. What’s this? Let’s check the documentation. The ability to be creative on what you do? And what the hell does that mean? I do have imagination: I want to think he (or she) will be as smart as the last girlfriend I had. When I think about it, anyway, another concept comes to my mind. I mean when I think about imagination, of course. I want to fly away with him, or her. I want the experience to be as remarkable as a lover’s trip to the Caribbean sea, or similar. So yes or no? It’s of course no harm to say yes…will I be able to change it later? Here it says yes…but I don’t think I going to crop it later on.

Physical appearance of my new mate is easy. After all, it’s just plastic. The dirty one is the AI.cnf. From it, you see it all. From that and the database dump, of course.

GDM not starting on CentOS 7.6

We did a big update, as I mentioned previously, and after the update I found out some of the graphic cards were not anymore supported by the newest NVIDIA drivers for CentOS x64, at this moment  NVIDIA-Linux-x86_64-418.43.run.  This may make some sense, since the Quadro 4000 was released in November 2010, but on the other hand it is a perfectly fine graphic card able to do 3D and hook up to 3 monitors. In principle I don’t like to throw away working hardware…unless requested to do so 🙂

I experienced all these symptoms depending on what I do:

  • you seem to have the drivers running but there is no output of nvidia-smi
  • you get an output that tells you that there is no device compatible.
  • there’s an ouput from nvidia-smi but GDM crashes

Sample GDM crash on my client “tiny” looks like this:

systemctl status gdm
● gdm.service - GNOME Display Manager
Loaded: loaded (/usr/lib/systemd/system/gdm.service; 
enabled; vendor preset: enabled)
Active: active (running) since XXX; 52s ago
Process: 24578 ExecStartPost=/bin/bash -c TERM=linux 
/usr/bin/clear > /dev/tty1 (code=exited, status=0/SUCCESS)
Main PID: 24575 (gdm)
CGroup: /system.slice/gdm.service
└─24575 /usr/sbin/gdm

XXX tiny systemd[1]: Starting GNOME Display Manager...
XXX tiny systemd[1]: Started GNOME Display Manager.
XXX tiny gdm[24575]: GdmDisplay: display lasted 0.093784 seconds
XXX tiny gdm[24575]: GdmDisplay: display lasted 0.031349 seconds
XXX tiny gdm[24575]: GdmDisplay: display lasted 0.017635 seconds
XXX tiny gdm[24575]: GdmDisplay: display lasted 0.016253 seconds
XXX tiny gdm[24575]: GdmDisplay: display lasted 0.016001 seconds
XXX tiny gdm[24575]: GdmDisplay: display lasted 0.017770 seconds
XXX tiny gdm[24575]: GdmLocalDisplayFactory: 
maximum number of X display failures reached: 
check X server log

Above, XXX corresponds to the date. We check the X server log as suggested. It reads:

root@tiny ~ ## > tail /var/log/Xorg.0.log
[ 344.316] ==== WARNING WARNING WARNING WARNING ================
[ 344.316] This server has a video driver 
ABI version of 24.0 that this
driver does not officially support. Please check
http://www.nvidia.com/ for driver updates or downgrade to an X
server with a supported driver ABI.
[ 344.316] =====================================================
[ 344.316] (EE) NVIDIA: Use the -ignoreABI option to 
override this check.
[ 344.316] (II) UnloadModule: "nvidia"
[ 344.316] (II) Unloading nvidia
[ 344.316] (EE) Failed to load module "nvidia" (unknown error, 0)
[ 344.316] (EE) No drivers available.

To get back GDM and a desktop environment for 418.43 and Quadro 4000 I tried uninstalling and installing again the 418.43 drivers, and to install and use lightdm instead of gdm. None of the solutions worked. Installing the previous drivers on the new kernel I end up with the message  Unable to load the kernel module nvidia.ko. Obviously because of the new kernel, of course.

What next? Downgrade maybe to avoid the xorg crash? From NVIDIA, I downloaded and install the latest legacy drivers NVIDIA-Linux-x86_64-390.87.run and I got my desktop back. Yeah, you can say: “why didn’t you do that to start with?“. Very simple answer also: I want to have homogeneous installations, not one machine with drivers version 390.87, the other one with 418.43. But I need to live with the fact that we are not all the same. unfortunately 😦

The best place

– I have been in many places around the world, but this one is really nice!

We were waiting in front of the standing desk of the maître to have our table assigned. I didn’t know where to go with her, so I spontaneously decided to try that fancy new place in town, Le Creuset. Being a local it is not easy to impress me with the setup, since this city is getting most of its business from tourism and almost everything was tried before to attract public. After entering, the only thought that crossed my mind was “it’s bigger on the inside”.

– Could the happy couple come with me, s’il vous plait?

We walk after him. The path crosses the dining room, direction to the imperial stairs at the end of the hall. I look around surprised. The place is really heterogeneous, filled with tables of different sizes, for four diners, six, or twelve. Some of the tables had funny shapes, like L-shaped, semicircular, and so on. Light comes from chandeliers of different sizes, candles, and some kind of shinny mushrooms… probably to create this so called organic feeling.

– Is it your first time in Le Creuset, messieur, madame? – We are still walking, apparently we go upstairs. I answer our waiter, that seems to be waiting for a feedback.

Oui. Although I’m a local. I simply heard that this new place was kind of out-of-options if you come uninvited or without a reservation. But I’m this kind of guy that doesn’t believe what people say…

– I can smell that – was the odd answer of our guide. – So you don’t know how this thing work. Magnifique! First I need you to tell us what are your expectations.

– Expectations? – She says. I do expect to have sex with her tonight, I refrain myself to say.

– Expectations, Erwartungen, les attentes. If I don’t know what you expect, how can I please you? – He smiles. His mouth is oddly big, and at one point I seem to see more teeth than what I could expect one to have. Again, he stops. We are halfway up the stairs. I look back, to the hall we crossed. The mix of differently shaped tables seems to want to tell me something…that I don’t manage to interpret.

– I just want to have a nice fish. This is a fish restaurant, right?

– We do are a fish restaurant, mlady. In fact, this is the place to come if you are a fish. – Again this weird smile with a mouth more filled with teeth than usual. And they really look sharp, I observe. I will never understand these new XXI century fashion trends, with those hipsters, trappers, and so on. I’m too old for that shit.

– I’m going to say I want also a nice ambient. A quiet table. In a terrace, if you have any.

– We do have terraces. You will love ours. Par ici. – The second floor extend deeper into the building. The chandeliers are almost gone here.  I look at the tables and the bar. Yes, this one looks better than downstairs. To my left and right, I see terraces opening, but we seem to walk straight. At the end, a big balcony seems to be guarded by two thugs. I grab her hand and we enter the balcony just to find out it ends on stairs…that go down to some sort of beach. An hologram, probably. The effect is amazing, there’s breeze and sea smells. There are also two empty tables. The waiter walks us to one.

– Please sit down, and I will send you someone to take note of your order. In the meantime, enjoy these caipirinhas by the house. We love to make new friends! Adieu…

We wave our hands in a stupid way to the leaving waiter. He smiles. What a big amount of teeth. I wonder if he can eat as usual with them. Probably I’ll never know.

GPFS error [E] Pagepool has size … instead of the requested … on CentOS 7

We just updated our GPFS systems for the new kernel. The installation was smooth once we get the rpm packages. Basically:

rpm -Uvh gpfs.base-4.2.3-13.x86_64.rpm \
gpfs.docs-4.2.3-13.noarch.rpm gpfs.ext-4.2.3-13.x86_64.rpm \
gpfs.gpl-4.2.3-13.noarch.rpm gpfs.gskit-8.0.50-86.x86_64.rpm \
gpfs.license.std-4.2.3-13.x86_64.rpm \
gpfs.msg.en_US-4.2.3-13.noarch.rpm

And after that the compiled binary for our kernel:

rpm -Uhv gpfs.gplbin-3.10.0-957.5.1.el7.x86_64-4.2.3-13.x86_64.rpm

On one of my small clients that I will call tinyone, it worked for a while, then it stopped and my GPFS mounts were gone. Of course I blame the software install, so I do another install, but the service keeps exiting and unmounting my filesystem with a return code 16 reason code 73354After the second reboot, I manually stop the service and start it again. Inmediately after the restart, I see…

systemctl status gpfs
● gpfs.service - General Parallel File System
Loaded: loaded (/usr/lib/systemd/system/gpfs.service; 
enabled; vendor preset: disabled)
Active: active (exited) since XXX; 3s ago
Process: 8545 ExecStop=/usr/lpp/mmfs/bin/gpfsrunlevel stop 
(code=exited, status=0/SUCCESS)
Process: 8761 ExecStart=/usr/lpp/mmfs/bin/gpfsrunlevel start 
(code=exited, status=0/SUCCESS)
Main PID: 8761 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/gpfs.service
├─ 8796 /usr/lpp/mmfs/bin/mmksh 
/usr/lpp/mmfs/bin/mmccrmonitor 15
├─ 8815 /usr/lpp/mmfs/bin/mmksh 
/usr/lpp/mmfs/bin/mmremote startSdrServ CURRENT
├─ 9333 /usr/lpp/mmfs/bin/mmsdrserv 1191 10 10 
/var/adm/ras/mmsdrserv.log 8192 yes no
├─ 9348 /usr/lpp/mmfs/bin/mmksh 
/usr/lpp/mmfs/bin/mmsysmoncontrol start
├─ 9795 /usr/lpp/mmfs/bin/mmksh 
/usr/lpp/mmfs/bin/runmmfs
├─10124 /usr/lpp/mmfs/bin/mmfsd
├─10255 /usr/lpp/mmfs/bin/mmksh 
/usr/lpp/mmfs/bin/mmcommon getUserExits
├─10496 /bin/sleep 3
└─10684 python /usr/lpp/mmfs/bin/mmsysmon.py

XXX tinyone systemd[1]: Starting General Parallel File System...
XXX tinyone systemd[1]: Started General Parallel File System.
XXX tinyone mmfs[10124]: 
[E] Pagepool has size ... bytes instead of the requested ... bytes.
XXX tinyone mmfs[10124]: [E] Pagepool ...
XXX tinyone mmfs[10124]: [E] Pagepool ...
XXX tinyone mmfs[10124]: [E] Pagepool ...

And a quick google leads us to this IBM page. That is exactly correct, since my tinione has only 4 GB of RAM. Well, what can I say. You can’t have GPFS everywhere. The good thing is that after the errors it works (I do have my GPFS filesystem mounted) it’s only not reliable. But I can access to the files, so so far so good 🙂