local .vimrc

if &cp | set nocp | endif                                                                                                                                        let s:cpo_save=&cpo                                                                                                                                              set cpo&vim                                                                                                                                                      vmap gx NetrwBrowseXVis                                                                                                                                    nmap gx NetrwBrowseX                                                                                                                                       vnoremap  NetrwBrowseXVis :^V^Ucall netrw#BrowseXVis()^V^M                                                                                         nnoremap  NetrwBrowseX :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netrw_gx : '^V')),netrw#CheckIfRemote())^V^M                     let &cpo=s:cpo_save                                                                                                                                              unlet s:cpo_save                                                                                                                                                 set backspace=indent,eol,start                                                                                                                                   set fileencodings=ucs-bom,utf-8,default,latin1                                                                                                                   set helplang=en                                                                                                                                                  set nomodeline                                                                                                                                                   set ruler                                                                                                                                                        set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after     set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc                                                                " vim: set ft=vim :                            

Basic Windows 10 VM

Linux 5.0.0-rc6+ fixed my lockup when using USB-C video

I had a really vexing problem with my XPS 13 9370. When I used it with an Apple USB-C to HDMI dongle or a Dell X5 dock (which has HDMI, Ethernet and some other devices), it would randomly lock-up. It wasn’t a hard lock-up (just video I think) as I could ssh to it over the network and do an orderly shutdown, though, I could not kill Xorg.

I headed over to GitHub and cloned the latest Linux 5 source, configured (with the help of /boot/config-4.15.0-1033-oem), built (takes about 15-20 minutes), and installed (you have to compress the initrd,img initially).

It’s fixed, with no side effects (for me)!

I am not a Dell fanboy. …and ordering this thing (w/ Ubuntu pre-installed) was unpleasant. …and I have no illusions of support (from India). …but it continues to be the best laptop I’ve ever owned.

In comparison to my spouse’s Mac Book, yes, it’s a little bulkier, but it’s got 3 USB-C (yes, they will all charge) ports, about the same battery life, and lacks Apple’s dodgy keyboard.

make -j8

make -j8 modules

make modules_install

mkinitramfs -c xz -o initrd.img-5.0.0-rc8+ 5.0.0-rc8+

update-grub

What, Lattice Diamond has Synopsys?

Uh… yes please.

Okay here’s how to get Synopsys working on Ubuntu. Lattice Diamond (and I suspect Synopsys too), officially, only runs on Red Hat. See my earlier post to work around that. Now most things seem to work for meperhaps I’m being generous; Diamond, like most (all?) IDEs is a POS. Whilst pulling my hair out screwing around with LSE I stumbled across a Lattice tutorial explaining how make sure your using LSEand becoming indoctrinated in Lattice’s worldbut, wait, that would imply one has a choice of Synthesis tools. Hmmm, what’s this reference to SynplifyPro? A quick search later and oh that’s Synopsys, an industry standard, the next best thing to an open source Logic Synthesizer! Oh hell yeah, I’ll be using this! …and then it failed.

synplify pro: 137: [: unexpected operator bash sh redhat ubuntu

…and a few more similar errors. The problem is that Diamond actually runs Synplify via scripts. When a script begins with !#/bin/sh RHEL, through the magic of soft links, actually uses bash whilst Ubuntu uses dash. That’s a problem and here’s the fix…

root@xps13:~# cd /usr/local/diamond/3.10_x64/synpbase

root@xps13:/usr/local/diamond/3.10_x64/synpbase# for file in grep -lRsI "/bin/sh" *; do sed -i -e 's/#!\/bin\/sh/#!\/bin\/bash/g' $file; done

This will find all the files that contain “#!/bin/sh” and change them to “#!/bin/bash” and voilà! Now I’m not stuck learning Lattices’ proprietary crapI’ll take Synopsys’s proprietary crap over lattices’ any day 🙂

Installing Lattice Diamond on Ubuntu 18.04

Use Alien to convert the rpm to a Debian package:

Use dpkg to install the resulting deb package:

Use alien to convert the service pack(s) to Debian Packages, if you see things like “bad interpreter” then you may need to install things like csh, here is an example below:

fail. …so install csh and try again:

That did it for me, look in /usr/local/diamond. Enjoy! Personally I hate IDEs so I tend to use vi for all but trivial editing sessions but it works.

RISC V

The HiFive 1 development board, got this a few months back, forgot to post.

So far I have OpenOCD sorta working–yea GDB!, well okay gdb’s not actually working for me yet. Yes I could just use the freedom SDK but that’s too easy! …and no I have no idea what I’m going to do with it, SDR radio transmitter, I dunno.