Articles

Various artices ive writen for diferent kind of targets are argived here.
Some intresting articles are also availeble in the project section.
I hope you enjoy reading them.

Arch linux with Splash screen, Plymouth

PDFPrintE-mail
12Sep2014
Last Updated on 22 June 2015 | Written by CodeAsm

Kinda destroyed my Linux install this last monday and decided to reinstall Arch linux. (I tweeted about it, I removed /var ... silly me)

All fine and well, ill post my Nvidia setting for my Lenovo E530 someday soon(url should point you in the right direction), but today I played with the idea of enableing a Splashscreen for Arch, a sort of bootscreen for linux instead of all awesome hacker friendly notes about wich modules are loaded, you get greetings from a nice load bar. example on youtube (shows what I have now, but his one is not booting further... like me, earlier today...)

Ill try to keep it short, maybe you ended up reading my article because you also got a "failed (Result: timeout)" for plymouth-quit-wait.service

Im using the plymouth "legacy" plymouth-legacy 0.8.8-2 (Actualy, now it works I might try the newer one...first ill tell you why this legacy one is working (choosed it because maybe newer one was broken/)

anyway, along the many commenst, recompiles and pakage install people did, some people actualy gave info I dint saw many times...

mareex (2014-06-27 13:16)
After setting "ShowDelay=0" in "/etc/plymouth/plymouthd.conf" splash finally showed up.

gokul (2014-06-27 09:30)
word of caution: I'm new to arch (just a few days) and new to systemd as well.

editing gdm-plymouth.service to change as follows stops plymouth screen properly.
#Conflicts=getty@tty1.service plymouth-quit.service
Conflicts=getty@tty1.service
I think this is because "Conflicts" will stop services which is not the required action for plymouth-quit.service. It is already there in the "After" which is exactly what is needed.

Anyway, I believe the solutio Gokul gave us was the winner, I also set the delay to 0, just in case (tried 5 and later noting, but 0 seems to be fine)

Thanks Arch commenters, and now I can tweak the theme and see if I got rid of the %⎕⎕⎕ %⎕⎕⎕ %⎕⎕⎕ ....

(Should update to newer plymouth aswell.

I hope the comments work again (facebook and such.) else tweet me or find help arround the Archlinux bbs or comments

if you like to comment but do not see it appear, please mail:

support (at ) kernelpaniq (dot com

 

UEFI bootmanager and writing to nvram

PDFPrintE-mail
04Feb2014
| Written by CodeAsm

I had some experience with installing Windows on my Lenovo Thinkpad E530 and later also Ubuntu as a multi-boot environment next to windows. It all works fine.And somehow I managed to install an uefi shell aswell, but after I got an SSD and installing windows and Ubuntu, I was unable to recreate a working uefi shell, the Uefi partition i created was stored on the SSD instead of the hdd.

I dont know if moving the files to a hdd partion has serios speed implications, but I want the freedom to replace the now "Data and personal files" disk anytime in the future without destroying the ssd boot options.

So, anyway. I think I fixed it by finding out how efibootmgr works, the man pages can be found here :http://linux.die.net/man/8/efibootmgr
And maybe using bcdedit you could do it from windows, but I had a hardtime getting acces to the uefi boot partition (linux is a lot easier if you happen to be Root)

So, basicly one can list all bootoptions stored inside the uefi nvram using just

efibootmgr

You get the following result for example:

BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0004,0000,0001,0002,0003
Boot0000* UEFI Shell
Boot0001  Boot Menu
Boot0002* Windows Boot manager
Boot0003  Lenovo Diagnostics

but thats not all (if you are not root, add sudo) efibootmgr requires that the kernel support access to EFI non-volatile variables (through /proc/efi/vars on 2.4 kernels, /sys/firmware/efi/vars on 2.6 kernels). modprobe efivars should do the trick.

and to get more info: type -v (verbose)

efibootmgr -v

Now the output will be slightly bigger:

BootCurrent: 0013
Timeout: 0 seconds
BootOrder: 0004,0000,0001,0002,0003
Boot0000* UEFI Shell    HD(2,96800,32000,24d8753a-ba2c-4cda-8ef9-8e115d00d4f4)File(\EFI\Shell.efi)
Boot0001  Boot Menu   
Boot0002  Windows Boot manager
Boot0003  Lenovo Diagnostics

You properbly notice that my shell shows up with more info. You can find more info at the man page. but ill show you one for my ubuntu aswell windweos

Boot0013* ubuntu    HD(2,96800,32000,2ff9953a-ba4c-4cda-8ef9-8e235d01d4e4)File(\EFI\ubuntu\shimx64.efi)

so well, il explain what these entry mean, because maybe your say HD(1, ... something something

I exlained that My boot partition is stored on the SSD and I noticed in Linux that my SSD is a second drive device, the HDD is first, so no problem, sda and sdb under linux. sdb is my ssd.

But how was I supposed to add the second partition of my ssd? just /dev/sdb dint work and /dev/sdb2 also not.

-p | --part PART
Partition number containing the bootloader (defaults to 1)

so, I need to use P to specify the partition number if they are not 1 ;)

to add my Shell efi file that was stored in this partition, i used the following command:

sudo efibootmgr -c -d /dev/sda -p 2 -l '\EFI\Shell.efi' -L Shell

where -c means Create a new entry, -d means where the loaders is located (on wich disk) -p specifies wich partition, you could leave this away if its partition 1. -l (small L) means the location of the loader in the filesystem on the partition. and -L means label (using ' ' is also allowed)

To remove a entry

sudo efibootmgr -b 3 -B

-b | --bootnum XXXX
Modify BootXXXX (hex)
-B | --delete-bootnum
Delete bootnum (hex)

you get that HEX number from the list of boot entries.

 

Good luck and use google (leave a comment or mail me if you want help from me, but hey, Im no expert yet, this just worked :D )

 

 

C# MVC .net is Nice

PDFPrintE-mail
14Sep2012
Last Updated on 14 September 2012 | Written by CodeAsm

I am working on an blog code in MVC and I must say, I like it. Why do I keep on using Php?
ALso I like to know if its posible to run MVC C# with .net on a Linux pc.

Some helpful websites:
http://blogs.msdn.com/b/stuartleeks/archive/2010/05/21/asp-net-mvc-creating-a-dropdownlist-helper-for-enums.aspx

http://blog.bennymichielsen.be/2011/05/21/entity-framework-4-1-supporting-enums/

and The next code is the example i was working on:

http://msdn.microsoft.com/en-US/data/jj591621

This is something i got today, it work :P after some editing and removing:

PM> Update-Database
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Applying code-based migrations: [201209141508585_AddColor].
Applying code-based migration: 201209141508585_AddColor.
System.Data.SqlClient.SqlException (0x80131904): Column names in each table must be unique. Column name 'FavoriteColor' in table 'dbo.Blogs' is specified more than once.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at System.Data.Entity.Migrations.DbMigrator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement)
at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement)
at System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable`1 migrationStatements)
at System.Data.Entity.Migrations.Infrastructure.MigratorBase.ExecuteStatements(IEnumerable`1 migrationStatements)
at System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, XDocument targetModel, IEnumerable`1 operations, Boolean downgrading, Boolean auto)
at System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
at System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
ClientConnectionId:d409dd5d-7262-4e16-84eb-73fd055b9474
Column names in each table must be unique. Column name 'FavoriteColor' in table 'dbo.Blogs' is specified more than once.
PM> Update-Database –TargetMigration: AddPostClass
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Reverting migrations: [201209141506262_dw].
Reverting automatic migration: 201209141506262_dw.
Automatic migration was not applied because it would result in data loss.
PM> Update-Database
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Applying code-based migrations: [201209131412100_InitialCreate, 201209131415289_AddBlogUrl, 201209131423385_AddPostClass, 201209141508585_AddColor].
Applying code-based migration: 201209131412100_InitialCreate.
Applying code-based migration: 201209131415289_AddBlogUrl.
Applying code-based migration: 201209131423385_AddPostClass.
Applying code-based migration: 201209141508585_AddColor.
Running Seed method.
PM>

   

C programming Day 255

PDFPrintE-mail
07Dec2011
| Written by CodeAsm
Very handy, and so small, dint make it, but still.

int i;for(i=7;i>=0;i--)putchar('0'+((v>>i)&1));

int v is input, it prints the binairy version of it.
I just used it at skool for C lessons, and its handy. Also I am going to start doing some psx and xbox programming, maybe ill post some demo's (with hopefully also work in Cxbx.) Actualy, the image and this last thing isnt realy related to my post, but maybe You dint knew about the resent Cxbx development.

Cxbx is awesome btw, so check Shoguns newest version, it runs the dashboard now.

http://shogun3d-cxbx.blogspot.com/


 

SNSD

PDFPrintE-mail
12Mar2011
Last Updated on 12 March 2011 | Written by CodeAsm

I was browsing my favorite community website lately and I stumbled upon this very interesting discussion about an Asian girl group.

I don't disclose any information on why and when, but here is what I found:

eh, posting important stuff, you guys should post this in every snsd thread:

Important SNSD TV Shows worth watching:
GGTS,
Horror Movie Factory,
Factory Girl,
Hello Baby
We Got Married w/ Taeyeon
Invincible Youth (Yuri & Sunny)
Right Now, It's Girls' Generation! - but there's only a handful of episodes.

Some links follow after the break

Read more: SNSD