This is part of my install/configuration notes for my latest Ubuntu 12.04 (Precise Pangolin) installation. I use VMware with my PeopleSoft development and testing, so it is very important for me to get it working.
Here’s what I did…
This is part of my install/configuration notes for my latest Ubuntu 12.04 (Precise Pangolin) installation. I use VMware with my PeopleSoft development and testing, so it is very important for me to get it working.
Here’s what I did…
I just installed Ubuntu 12.04 on my main laptop. Clicking the buttons to walk through the Ubuntu install wizard is only the tip of the iceberg. Now comes the job of installing all of the programs and tools to make it what you want.
Read on to see what I did first with my new installation…
Wow! Time has flown! I think I was still trying to get Ubuntu 11.10 working. Now, Ubuntu 12.04 is out, and the name for 12.10 is chosen (Quantal Quetzal). Where have I been?
This article is what woke me up:
Engadget: Ubuntu 12.10 gets christened Quantal Quetzal ahead of Pangolin launch
As a heads up, I have Pangolin installed. Stay tuned for more posts on Ubuntu 12.04…
I ran across this Windows program that is supposed to emulate all of the different versions of IE called IE TEster. Will it work on Linux? Halfway …
Well, you can download it from here:
Browser Compatibility Check for Internet Explorer Versions from 5.5 to 10
I have been struggling with ssh connections. So, I thought I would write down some of the different troubleshooting tips that I found.
Make sure that your permissions are correct on your home directory and your key files. Here are the permissions that you need.
Check with this:
ls -ld $HOME $HOME/.ssh $HOME/.ssh/authorized_keys $HOME/.ssh/id_rsa
Note: make sure that you check this on your local computer and your remote computer. The permissions should be:
chmod go-w $HOME chmod 700 $HOME/.ssh chmod 600 $HOME/.ssh/authorized_keys chmod 600 $HOME/.ssh/id_rsa
Another thing I found was that SE Linux was stopped the private keys from working. Using dmesg, I found lines like this:
type=1400 audit(1332520527.110:51337): avc: denied { read } for pid=25240 comm="sshd" name="authorized_keys" dev=dm-5 ino=167 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file
I checked the status with sestatus, and found that SELinux was enforcing. Then, I used the following command to turn it to permissive mode:
setenforce 0
Checking again, you’ll see it is in permissive mode now:
$ sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: permissive Policy version: 24 Policy from config file: targeted
Then, when I tried connecting, I found that the key authentication and X11 forwarding worked. Just a note: the key authentication worked with policy version 23 but not 24.
Use the “-v” parameter to ssh will provide some output as to what is wrong. In fact, you can maximize the debugging messages with “-vvv”. So, you can see what’s going on, you can do something like this:
ssh -vvv remoteuser@remotecomputer
I read that the messages go to dmesg. I had trouble telling if dmesg was changing. So, I decided to see if I could add something to the log. Then, I would know that anything after that message was new.
Here’s the command that did the trick:
sudo bash -c "echo hello world > /dev/kmsg "
At first, I couldn’t get any log messages out of the remote machine. I found that I had to adjust the configuration for both syslog and sshd.
First, I change syslog to create a separate log file for sshd. You can make this change in /etc/rsyslog.conf. The local7.* already existed in my configuration. I added the local6.debug line:
# Save boot messages also to boot.log local7.* /var/log/boot.log # SSH specific (Added by Stephen) local6.debug /var/log/sshd.log
Then, I had to change the sshd configuration. You can make this change in /etc/ssh/sshd_config. I set the SysLogFacility to “LOCAL6” to make the separate log file setting work from above. Then, I changed the LogLevel to “DEBUG”. I think there is also a “DEBUG3” that might provide even more.
# Logging # obsoletes QuietMode and FascistLogging #SyslogFacility AUTH #SyslogFacility AUTHPRIV #LogLevel INFO SyslogFacility LOCAL6 LogLevel DEBUG
Finally, restart both sshd and rsyslog to make the changes take effect.
sudo service sshd restart && sudo service rsyslog restart
This is a cool trick. If you open a shell to monitor the log, you can use the tail command to print messages to the screen as they are written:
tail -f /var/log/sshd.log
This is what helped me find my problem.
I finally found that my problem was the permissions of the home directory. I found this in the log file:
Authentication refused: bad ownership or modes for directory /home/remoteuser
After I changed ownership of the home directory, my key authentication worked great.
It was recently pointed out to me that site load speed factors into search status. So, I thought I would do some research and experimentation with my site to see if I can improve performance. And, I thought that I could keep my notes out in public in case it might help someone else.
Today, my VMWare just offered to update! Now, I have the new 4.0.2 version:
The update was great. I wish other software vendors could make their updates this easy! I just stepped through the Wizard, and before too long, I have the latest and greatest installed.
You can read the changes in the new version here: VMware Player 4.0.2 Release Notes.
I have been having trouble with the VMWare Tools update hanging. It would download and install forever, and I couldn’t close the window. With the new version, it finished and installed–no problem.
Another new feature that I just noticed was the Shared Folders. I am not sure if this is new to this version or not. I had been looking for Shared Folders, but I hadn’t been able to find them. Now, they are an option in the machine settings:
Someone asked me about voice recognition the other day, so I thought it sounded like a fun little project to master. Here’s my go at it.
Unfortunately, I didn’t have much luck with it. Please post a comment if you get more working than I did.
I did a little research, and found that Wikipedia has a nice list of open source speech recognition programs. While it’s not huge, it was a good place to start. I chose Julius because it looked the most promising.
Since Julius is in the repositories, installing it was easy! I just installed it from the Software Center.
I went a step further and installed the voxforge accoustic files from the “More Info” screen.
From what I can tell, there is no gui for julius (although, the project Simon might be a frontend for it). You should find it installed on the command-line though:
$ which julius /usr/bin/julius $ julius -help
Looking at the options, my first attempt was:
$ julius -input mic ERROR: m_chkparam: you should specify at least one LM to run Julius!
The next thing I found was the VoxForge quickstart. I downloaded the tarball, and extracted it:
$tar -xzvf julius-3.5.2-quickstart-linux.tgz $cd julius-3.5.2-quickstart-linux/ $ julius -input mic -C julian.jconf
That was closer, but it gave me this message at the end of all the output:
------ ### read waveform input Stat: adin_oss: device name = /dev/dsp (application default) Error: adin_oss: failed to open /dev/dsp failed to begin input stream
Adding padsp in front of the command fixed that problem:
$ padsp julius -input mic -C julian.jconf
I still got warnings though…
### read waveform input Stat: adin_oss: device name = /dev/dsp (application default) Stat: adin_oss: sampling rate = 16000Hz Stat: adin_oss: going to set latency to 50 msec Stat: adin_oss: audio I/O Latency = 32 msec (fragment size = 512 samples) STAT: AD-in thread created <<< please speak >>>Warning: adin_oss: no data fragment after 300 msec? Warning: adin_oss: no data fragment after 300 msec? Warning: adin_oss: no data fragment after 300 msec?
If you open the Sound Settings, the warnings go away. I thought was kind of flakey, but it worked. Unfortunately, the output was a little cryptic, and didn’t give me the feedback that I needed. This is what I get when I said, “Hello”:
pass1_best: <s> DIAL EIGHT pass1_best_wordseq: 0 3 5 pass1_best_phonemeseq: sil | d ay ax l | ey t pass1_best_score: -3177.784424 ### Recognition: 2nd pass (RL heuristic best-first) STAT: 00 _default: 13 generated, 13 pushed, 5 nodes popped in 109 sentence1: <s> DIAL OH </s> wseq1: 0 3 5 1 phseq1: sil | d ay ax l | ow | sil cmscore1: 1.000 1.000 0.997 1.000 score1: -3393.694580
I probably could have used audacity much more easily, but since I was already on the command line, I decided to keep it there with the arecord program. I used this line to record:
$ arecord -r 16000 > test.wav
I played it back and it sounded kind of rough, but we’ll try it —
$ mplayer test.wav
Next, I ran it through julius:
$ ls test.wav > test.txt $ julius -input rawfile -filelist test.txt -C julian.jconf
Unfortunately, mplayer could play the file, but julius could not open it for some reason.
### read waveform input Error: adin_file: bytes per second != 32000 (16000) Error: adin_file: error in parsing wav header at test.wav Error: adin_file: failed to read speech data: "test.wav" 0 files processed
So, I found an example that used sox to convert it. I had to install sox with apt-get …
sudo apt-get install sox
Then, I converted the file and ran it like this:
$ sox test.wav -r 16000 -b 32 -c 1 test.s32 $ ls test.s32 > test.txt $ julius -input rawfile -filelist test.txt -C julian.jconf
Still, this is the only output that I got:
### Recognition: 1st pass (LR beam) ...........................................................................................................................pass1_best: <s> pass1_best_wordseq: 0 pass1_best_phonemeseq: sil pass1_best_score: -2712.263916 ### Recognition: 2nd pass (RL heuristic best-first) WARNING: IW-triphone for word head "l-ow+t" not found, fallback to pseudo {ow+t} WARNING: IW-triphone for word head "ow-ow+t" not found, fallback to pseudo {ow+t} WARNING: IW-triphone for word head "t-ow+t" not found, fallback to pseudo {ow+t} WARNING: IW-triphone for word head "uw-ow+t" not found, fallback to pseudo {ow+t} WARNING: 00 _default: hypothesis stack exhausted, terminate search now STAT: 00 _default: 0 sentences have been found WARNING: 00 _default: got no candidates, search failed STAT: 00 _default: 147 generated, 147 pushed, 147 nodes popped in 123 <search failed> ------ ### read waveform input 1 files processed
I used audacity to cleanup the file. The Noise Removal improved it somewhat, but it still wasn’t good quality. Here’s the output after that:
### read waveform input Stat: adin_file: input speechfile: test.wav STAT: 30000 samples (1.88 sec.) STAT: ### speech analysis (waveform -> MFCC) ### Recognition: 1st pass (LR beam) ..........................................................................................................................................................................................pass1_best: <s> DIAL OH </s> pass1_best_wordseq: 0 3 5 1 pass1_best_phonemeseq: sil | d ay ax l | ow | sil pass1_best_score: -5237.150391 ### Recognition: 2nd pass (RL heuristic best-first) STAT: 00 _default: 27 generated, 27 pushed, 5 nodes popped in 186 sentence1: <s> DIAL OH </s> wseq1: 0 3 5 1 phseq1: sil | d ay ax l | ow | sil cmscore1: 1.000 0.978 0.987 1.000 score1: -5225.757324 ------ ### read waveform input 1 files processed
I also tried creating a file from scratch in audacity, and I still couldn’t get it:
### read waveform input Stat: adin_file: input speechfile: test.wav STAT: 21176 samples (1.32 sec.) STAT: ### speech analysis (waveform -> MFCC) ### Recognition: 1st pass (LR beam) ..................................................................................................................................pass1_best: <s> DIAL OH pass1_best_wordseq: 0 3 5 pass1_best_phonemeseq: sil | d ay ax l | ow pass1_best_score: -3417.226318 ### Recognition: 2nd pass (RL heuristic best-first) STAT: 00 _default: 23 generated, 23 pushed, 5 nodes popped in 130 sentence1: <s> DIAL OH </s> wseq1: 0 3 5 1 phseq1: sil | d ay ax l | ow | sil cmscore1: 1.000 0.911 1.000 1.000 score1: -3453.692871 ------ ### read waveform input 1 files processed
My next task that I wanted to attempt was to try to capture something on a good recording. So, let’s find a good YouTube video to run through julius.
I tried clive, but it failed for some reason:
$sudo apt-get install clive $ clive -cnrf best http://www.youtube.com/watch?v=dePLd9HAYjQ fetch http://www.youtube.com/watch?v=dePLd9HAYjQ ...done. error: no match: `(?-xism:url_encoded_fmt_stream_map=(.*?)&)'
So, I went back to my tried and true Video Downloader Firefox extension. Here is the first video that I tried:
For God So Loved The World (song and hymn history)
I converted the flv file to a wav like this:
ffmpeg -i youtube.flv -vn -acodec pcm_s16le -ar 16000 -ac 1 -f wav test.wav
And, I ran it through Julius like this:
$ ls test.wav > test.txt $ julius -input rawfile -filelist test.txt -C julian.jconf
The end result was a segmentation fault!
I tried another one: Psalm 119 King James Holy Bible
This one also have me a segmentation fault.
Another: Job 41 (King James Holy Bible)
....trace_backptr: sentence length exceeded ( > 150)
If you want to play with the VoxForge addon package, you can look at the readme file that should be located here:
/usr/share/doc/julius-voxforge/examples/README
$ dpkg -L julius-voxforge /. /usr /usr/share /usr/share/doc /usr/share/doc/julius-voxforge /usr/share/doc/julius-voxforge/copyright /usr/share/doc/julius-voxforge/examples /usr/share/doc/julius-voxforge/examples/controlapp /usr/share/doc/julius-voxforge/examples/controlapp/mediaplayer.grammar /usr/share/doc/julius-voxforge/examples/controlapp/command.py /usr/share/doc/julius-voxforge/examples/controlapp/mediaplayer.voca /usr/share/doc/julius-voxforge/examples/controlapp/README.controlapp /usr/share/doc/julius-voxforge/examples/README /usr/share/doc/julius-voxforge/examples/sample.grammar /usr/share/doc/julius-voxforge/examples/sample.voca /usr/share/doc/julius-voxforge/examples/julian.jconf.gz /usr/share/doc/julius-voxforge/dict.gz /usr/share/doc/julius-voxforge/changelog.Debian.gz /usr/share/julius-voxforge /usr/share/julius-voxforge/acoustic /usr/share/julius-voxforge/acoustic/hmmdefs /usr/share/julius-voxforge/acoustic/macros /usr/share/julius-voxforge/acoustic/tiedlist
I can’t forget to mention the HD2 ROM site that lists all of the ROMs out there: HTC HD2 Android Roms/Builds.
Just a quick post to let you know the website move is complete. I’m sorry about any down time you may have experienced. Hopefully, I can get active again and start blogging again.
If you are interested in the details check out: